Files
zeekayandHanzo Dev ba23d9277c The live suite says why it could not sign in
The setup fixture gates the other 41 tests, so when it dies without a
reason the run reports "1 failed, 41 did not run" and names no cause.
Three changes, each proven against the live IdP:

The submit control is addressed by TYPE. The four federated choices beside
it (Google, GitHub, Wallet, Phone) are `type="button"` and all read
"Continue with ...", so `getByRole('button', {name: /sign in|log in|
continue/i})` resolves to five elements and strict mode refuses the click.
Type distinguishes them and does not change when a provider is added.

The form is filled, then read back. hanzo.id renders its sign-in from the
application config it fetches after the document loads; a render landing
between the fill and the click resets both inputs, and the submit then
carries nothing -- IAM answers "organization, username and password are
required", which is true about an empty form and says nothing about the
account.

The IdP's verdict is read from its own response rather than inferred from
a navigation that never happens. A refused sign-in used to spend 60s per
attempt proving only that the URL had not changed; it now fails in about
three seconds with the reason IAM gave. Only an explicit `status: error`
is treated as one, so this can name a failure but never invent one.

And the verify job keeps what a failure wrote. The config already asks for
a trace and a screenshot on failure and writes junit, but nothing
collected them, so they were destroyed with the container. v3 deliberately:
v4 and above error on this runner even when the job is green.

Co-authored-by: Hanzo Dev <[email protected]>
2026-08-14 09:59:58 -07:00
..