Skip to content

E2E: 59 tests fail across 18 specs — the setup wizard opens over the app since the ADR-111 demo-data step #1321

Description

@rubenvdlinde

59 E2E tests fail across 18 spec files: the setup wizard is open and swallowing every click

Bracketed on development — last green e8650455, first red 72546d4d, which is the merge of #1295 (feat/demo-data-adr-111).

59 failed
273 passed (29.2m)

Every failure is the same shape — locator.click: Test timeout of 60000ms exceeded — across 18 unrelated spec files (bank-statement-wizard, bill-import-modal, bookings-resource-calendar, AccountantPortalDashboard, …). Specs that share nothing except that they click on something.

Root cause, already diagnosed in buildiq

buildiq hit this today and fixed it in ConductionNL/buildiq#523. Its commit message is the explanation:

EVERY STEP, not just the completion key. Setting setup_completed_version alone does NOT close the wizard … SetupController::status() recomputes each step from its own evidence on every call and only then writes the completion key, so the key is an OUTPUT of that computation, never an input to it.

Since nextcloud-vue 2.21 an OUTSTANDING OPTIONAL step is enough to open the wizard (nextcloud-vue#806 fixed it short-circuiting on completed), so store and demo-data being undone is what puts the dialog up — even though completed is true because the required step is done.

So two things landed together and only bite in combination:

  1. feat(demo-data): ship demo data for every schema shillinq supplies (ADR-111) #1295 added a demo-data setup step — a new optional step, initially undone.
  2. nextcloud-vue 2.21 stopped short-circuiting on completed, so an undone optional step now opens the wizard on its own.

The wizard renders over the app, and 59 clicks land on the overlay instead of the control.

The fix buildiq used

In tests/e2e/ci-seed.sh, write every step's own evidence key, not just the completion key:

for kv in "registry_url=…" "demo_data_decided=skipped" "setup_completed_version=1"; do
    php occ config:app:set <app> "${kv%%=*}" --value="${kv#*=}"
done

demo_data_decided is the app's own "dealt with" flag rather than "objects exist" — writing it is exactly what an operator who declined the import would leave behind, which is the honest state for a CI instance.

shillinq's equivalent keys will differ; the principle is that each step is recomputed from its evidence, so the seeder has to satisfy the evidence.

Not caused by the hydra-gates or dependency work

The two shillinq PRs merged earlier today (#1285 dependencies, #1309 hydra-gates) are hours before the boundary commit and touch neither the manifest nor the seeder. The bracket puts it squarely on #1295.

Worth checking whether any other app that gained an ADR-111 demo-data step has the same latent break — the trigger is "a new optional setup step" plus "nextcloud-vue ≥ 2.21", not anything specific to shillinq.

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