Skip to content

fix(e2e): assert the dashboard that exists, and stop pinning English on a Dutch instance - #915

Merged
rubenvdlinde merged 1 commit into
developmentfrom
fix/e2e-dashboard-surface-and-locale-tolerant-selectors
Sep 1, 2026
Merged

fix(e2e): assert the dashboard that exists, and stop pinning English on a Dutch instance#915
rubenvdlinde merged 1 commit into
developmentfrom
fix/e2e-dashboard-surface-and-locale-tolerant-selectors

Conversation

@rubenvdlinde

Copy link
Copy Markdown
Contributor

development E2E has been red for a day with six failures in two clusters. Both are the suite describing a world the app left behind.

Neither was introduced by the icon work merged earlier today — the same six fail on the 08-31 21:06 run, which I checked before touching anything.

dashboard.spec.ts — three tests

They assert an info box: the sentence "Overzicht van uw softwarecatalogus", a heading "Beheer van Organisaties", a "Vernieuwen" button on the surface, and a "Ga naar Organisaties" quick-nav. None of those strings exists anywhere in src/ or l10n/nl.json any more. The dashboard is now four stat tiles plus the catalog-panels widget, since the KPI tiles landed in #892, and the spec was never updated.

  • the overview test now asserts the four tiles and the object-statistics panel;
  • the refresh test now opens the page actions menu, where CnDashboardPage puts Refresh (showRefresh defaults true), instead of looking for a button on the surface;
  • the "Ga naar Organisaties" test is removed rather than retargeted. Its own comment already recorded that the button was a no-op in the shared shell and that the user real path is the Organisations nav entry — which is the very next test in the file. Rewriting it would have tested that path twice while pretending to cover a control that no longer exists.

The tile labels are asserted in Dutch, and they are not all the manifest source: the manifest says Services and nl.json maps it to Diensten. An English assertion would pass only on an English instance.

sbom-import.spec.ts — two tests

await page.getByRole("tab", { name: "Components" }).click()

The manifest labels that tab Components and nl.json maps it to Componenten. The e2e instance runs Dutch, so the tab never matched and both tests died on a 60s click timeout that reads like a missing feature rather than a wrong string. The matcher now accepts either spelling, as does the "Open sidebar" button above it.

The underlying debt

This suite mixes locales: the dashboard tests asserted Dutch, the sbom tests asserted English, against one Dutch instance. Locale-tolerant matchers are the cheap fix; a decided convention is the real one.

…on a Dutch instance

development E2E has been red for a day with six failures in two clusters.
Both are the suite describing a world the app left behind. Neither was
introduced by the icon work merged earlier today; the same six fail on the
08-31 21:06 run, checked.

## dashboard.spec.ts, three tests

They assert an info box: the sentence "Overzicht van uw softwarecatalogus",
a heading "Beheer van Organisaties", a "Vernieuwen" button on the surface and
a "Ga naar Organisaties" quick-nav. None of that string set exists anywhere
in src/ or l10n/nl.json any more. The dashboard is now four stat tiles plus
the catalog-panels widget, since the KPI tiles landed in #892, and the spec
was never updated.

  - the overview test now asserts the four tiles and the object-statistics
    panel;
  - the refresh test now opens the PAGE ACTIONS menu, where CnDashboardPage
    puts Refresh (showRefresh defaults true), instead of looking for a button
    on the surface;
  - the "Ga naar Organisaties" test is REMOVED rather than retargeted. Its
    own comment already recorded that the button was a no-op in the shared
    shell and that the user real path is the Organisations nav entry, which
    is the very next test in the file. Rewriting it would have tested that
    path twice while pretending to cover a control that no longer exists.

⚠️ The tile labels are asserted in DUTCH, and they are not all the manifest
source. The manifest says "Services"; nl.json maps it to "Diensten". An
English assertion would pass only on an English instance.

## sbom-import.spec.ts, two tests

  await page.getByRole("tab", { name: "Components" }).click()

The manifest labels that tab "Components" and nl.json maps it to
"Componenten". The e2e instance runs Dutch, so the tab never matched and both
tests died on a 60s click timeout that reads like a missing feature rather
than a wrong string. The matcher now accepts either spelling, as does the
"Open sidebar" button above it.

🔑 The underlying debt is that this suite mixes locales: the dashboard tests
asserted Dutch, the sbom tests asserted English, against one Dutch instance.
Locale-tolerant matchers are the cheap fix; a decided convention is the real
one.
@github-actions

github-actions Bot commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

Quality Report — ConductionNL/stackiq @ a36d8fe

Check PHP Vue Security License Tests
lint
phpcs
phpmd
psalm
phpstan
phpmetrics
eslint
stylelint
build
check-manifest
check-vue-demi
test-l10n
format
check-schema-l10n
check-l10n-js
composer ✅ 130/130
npm ✅ 711/711
app:check-code ⏭️
info.xml
REUSE
PHPUnit
Newman ⏭️
Playwright ⏭️ deferred — runs on the promotion into beta/main, not on a pull request into development
Hydra gates

Quality workflow — 2026-09-01 08:18 UTC

Download the full PDF report from the workflow artifacts.

@rubenvdlinde
rubenvdlinde merged commit 5fd965b into development Sep 1, 2026
50 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant