Skip to content

test: guarantee the logo-less member dialog case through the e2e overlay - #1149

Merged
mrbobbytables merged 1 commit into
mainfrom
quality/test-member-logo-overlay-guarantee
Oct 7, 2026
Merged

mrbobbytables merged 1 commit into
mainfrom
quality/test-member-logo-overlay-guarantee

Conversation

@hivecommons-hive

Copy link
Copy Markdown
Contributor

Test Improvement

tests/e2e/member-directory.spec.js holds the only browser coverage of the
member profile dialog's logo-less arm
(src/components/MemberDirectory/MemberProfile.js:35-41). It selected the
member driving that case by reading data/members.json off disk and
test.skipping when every member carried a logo.

That file is regenerated from the CNCF landscape by npm run generate:members,
so the condition is upstream state rather than a source edit: at main =
7ab301e only two of 101 members lack a logo (DiDi,
Subaru Corporation). A landscape refresh that gives both of them one retires
the case as a skip — and no gate reports a skip, so a green suite would
stop covering a shipped UI arm without saying so.

This PR reads the members through loadSiteData('members.json') from
tests/tools/e2e-data-fixtures.cjs, as tests/e2e/data-fixtures.spec.js and
tests/e2e/data-variants.spec.js already do. The committed overlay in
tests/e2e/fixtures/data/members.json appends coverage-fixture-org with
"logo": null, so under E2E_COVERAGE=1 a logo-less member is a property of
the build; its absence is then asserted as a broken fixture rather than
skipped. The plain End-to-end tests job applies no overlay
(loadSiteData returns the file unchanged there) and keeps the existing skip,
because in that job the case really does depend on upstream data.

No behaviour of the dialog is restated: the case still compares the dialog's
large initials against the card's server-rendered ones, and a real logo-less
member is still preferred when the data has one.

Verification

  • npm run test:unit at this head: 1966 passed, 0 failed (node v26.10.0,
    TZ=UTC).
  • npx prettier --check tests/e2e/member-directory.spec.js: clean.
  • npx playwright test --list tests/e2e/member-directory.spec.js: all six
    cases enumerate.
  • Overlay behaviour checked directly at 7ab301e:
    loadSiteData('members.json', {}) → 101 members, 2 without a logo;
    loadSiteData('members.json', {E2E_COVERAGE: '1'}) → 102 members, 3 without
    a logo, the third being Coverage Fixture Organization.
  • The browser run itself was not executed locally: this environment has no
    libglib-2.0.so.0 and no root to install Playwright's system dependencies,
    so chrome-headless-shell exits 127 before any spec runs. The
    End-to-end coverage job is the check that exercises it.

Files claimed

tests/e2e/member-directory.spec.js only. Disjoint from
tests/e2e/fixtures/data-variants/members.json (#1104),
tests/tools/e2e-data-fixtures.cjs and tests/e2e-data-fixtures.test.mjs
(#1110, #1113), tests/e2e/dialog-non-dismissing.spec.js (#1120), and every
workflow file.

Related Issue

Closes #1148

— hive: agent=quality backend=copilot model=claude-opus-5 copilot=1.0.88

tests/e2e/member-directory.spec.js is the only browser coverage of
MemberProfile's initials arm, and it chose the member driving that case by
reading data/members.json off disk and skipping when every member carried a
logo. That file is regenerated from the CNCF landscape, so the condition is
upstream state: at 7ab301e only two of 101 members lack a logo, and a refresh
that gives both of them one retires the case as a silent skip no gate reports.

Read the members through loadSiteData() instead, as tests/e2e/data-fixtures.spec.js
and tests/e2e/data-variants.spec.js already do. The committed overlay in
tests/e2e/fixtures/data/members.json appends coverage-fixture-org with a null
logo, so under E2E_COVERAGE=1 a logo-less member is a property of the build and
its absence is asserted as a broken fixture rather than skipped. The plain
end-to-end job applies no overlay and keeps the skip, because there the case
really does depend on upstream data.

Signed-off-by: quality <quality@hive.kubestellar.io>
@hivecommons-hive hivecommons-hive Bot added the hold label Oct 7, 2026
@hivecommons-hive

Copy link
Copy Markdown
Contributor Author

Important

Held for human review by the hive's ACMM level gate.

This PR was opened by the "quality" agent while Hive policy required a human checkpoint for that agent. Non-outreach agents are held at ACMM L3–L5; the outreach agent is always held because it publishes project-facing communication.

Hive will keep the hold label until a human removes it. Operators can make a deliberate one-off release during an ACMM level change with release_level_holds=true, but level changes never release this hold automatically.

@mrbobbytables
mrbobbytables added this pull request to the merge queue Oct 7, 2026
Merged via the queue into main with commit 532f13b Oct 7, 2026
7 checks passed
@mrbobbytables
mrbobbytables deleted the quality/test-member-logo-overlay-guarantee branch October 7, 2026 15:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[quality] the member-dialog logo-less e2e case reads data/members.json, so a landscape refresh can silently retire it

1 participant