Skip to content

E2E: 12 skips blame a deploy for sidebar tabs that were deliberately moved into the page body #951

Description

@rubenvdlinde

12 skips claim a sidebar tab is "not deployed". It was moved, on purpose, and the tests were never updated

Every one of these fires against getByRole('tab', { name: … }):

spec reason recorded
admin-settings.spec.ts ×3 Members tab not deployed on this instance
admin-settings.spec.ts Process template tab not deployed on this instance
agenda-management.spec.ts ×3 Agenda tab not present (deployed build predates sidebar tabs)
meeting-management.spec.ts Series tab not present (deployed build predates meeting-agenda-gaps-v1)
resolution-minutes.spec.ts ×4 Deploy drift: the deployed decidiq predates minutes-ui-v1 (no Approval tab)

None of that is true

development is 1.1.1-unstable. All five components exist, are imported into src/registry.js, and are wired into the manifest — as body widgets, not sidebar tabs:

GovernanceBodyDetail   body widget  id=body-members       title=Members
GovernanceBodyDetail   body widget  id=body-template      title=Process template
MeetingDetail          body widget  id=meeting-agenda     title=Agenda
MeetingDetail          body widget  id=meeting-series     title=Series
MinutesDetail          body widget  id=minutes-approval   title=Approval

And the move was deliberate. GovernanceBodyDetail's own _note says so:

the Process template / Efficiency analytics / Recording retention specialist surfaces below (moved out of the sidebar per the audit-only sidebar rule; each is a rarer, second-tier task so they sit lower on the page). Sidebar is audit-trail only.

Every page's sidebar.tabs now contains exactly one entry — History. That is the rule working as designed.

So the tests are looking in the wrong place

They are not blocked on a deployment and never were. getByRole('tab', { name: 'Members' }) cannot match a body widget titled "Members", so the guard fires, the reason blames a build, and eleven scenarios stand down against a surface that renders correctly.

What I nearly did, and why I did not

My first move was to wire the five components into sidebar.tabs, matching the shape used by the History tab. That would have rendered every one of them twice and broken the documented audit-only rule.

Two things stopped it. The diff was 2465 added / 199 removed for what should have been five small additions — a whole-file reformat from a JSON round-trip. Reading the raw text instead of my model of it then showed the slots block and the _note, which say plainly that these already ship elsewhere on the page.

Suggested fix

Retarget the eleven assertions at the body widgets — the titles are stable and already in the manifest (Members, Process template, Agenda, Series, Approval) — and delete the deploy-drift reasons, which describe a state that cannot occur: CI deploys the head commit.

workflows/rbac-authorization-workflow.spec.ts (4 skipped, 0 executed) is separate and not covered here.

Measured while working ConductionNL/.github#609. Not introduced by anything merged today.

Metadata

Metadata

Assignees

Labels

triageAwaiting triage

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions