Conversation
|
Claude finished @luizhf42's task in 14m 41s —— View job Code Review CompleteReviewed 5 files. 8 inline issues posted. Standards: 0 violations, 1 judgement call. Spec: did not run. Correctness: 7. StandardsNo hard violations. One judgement call: the Correctness
Also posted: SpecThe Spec axis did not run: the PR and its commits reference no issue, and a spec is never reconstructed from the PR title. Additional notesThe OpenAPI change is sound — The If you've addressed the feedback and want a new review, tag |
77b402a to
70405ef
Compare
|
/review |
|
Claude finished @gustavosbarreto's task in 18m 16s —— View job Code Review CompleteReviewed 9 files. 8 inline issues posted. Standards: 0 violations, 3 judgement calls. Spec: did not run. Correctness: 5. StandardsNo hard violations. The previous round's CorrectnessTwo tests are silently skipped in CI right now. The enterprise leg of the current head's run reports Also posted: the SpecThe Spec axis did not run: neither the PR nor its three commits reference an issue, and a spec is never reconstructed from the PR title. Additional notesThe declined One verified-clean item worth recording: the OpenAPI change is honest about the wire contract — If you've addressed the feedback and want a new review, tag |
013f94a to
9c57e3a
Compare
9c57e3a to
bdf7a2e
Compare
bdf7a2e to
2c0791d
Compare
|
@luizhf42 about the The server announced the deadline in #7181 fixed it (merged, closes #7179): the server now unlocks at exactly the announced second. Once this branch picks it up, you can:
This PR is based on |
2c0791d to
88a0436
Compare
Done. I rebased both branches, removed the 2s timeout, and reworded the commit body. |
|
/review |
88a0436 to
dd72f08
Compare
337535c to
f3ead88
Compare
|
/review |
|
Claude finished @gustavosbarreto's task in 18m 56s —— View job Code Review
Third round. Everything raised in rounds 1 and 2 is genuinely addressed at 8 findings posted: 2 correctness, 2 hard violations of The two worth reading first are both in Dropped before posting
The Spec axis did not run. Neither the PR body nor any of its three commits ( If you've addressed the feedback and want a new review, tag |
The `generateInvitationLink` 200 response declared the `link` property without listing it in `required`, so the generated TypeScript type made it optional. Callers had to assert `link!` even though the server always returns it.
handleClose routed to onClose at step 1, which set React state but never wrote to localStorage. After a namespace switch (full page reload), the component remounted, found no flag, and showed the wizard again for the same tenant. Remove the onClose/onDismiss distinction and pass onDismiss directly to BaseDialog and the X button so any dismissal calls markWelcomeSeen.
Cover sign-in, invalid credentials, sign-out, account lockout (trigger + recovery) and invitation acceptance (logged-in, not-logged-in, new-user sign-up). Fixture users and namespaces are created through the stack CLI (`docker compose exec server /server admin`) with randomized names, so each test gets its own fixtures. The two existing-user invitation tests skip on enterprise. Enterprise enables direct membership, so inviting a user who already has an account adds them to the namespace and returns no invitation link. Community and cloud return the link and run both tests. The lockout test fails three logins because `StoreLoginAttempt` (`pkg/cache/cache_redis.go`) starts locking on the third attempt, for `4^(attempt-3)` minutes, so the third failure locks the account for one minute. The countdown wait allows 75s to cover that minute plus page and network overhead. `dismissWizard` treats a wizard that never appears within 5s as absent and carries on. Callers use it after every sign-in, and the wizard is legitimately missing once the tenant dismissed it or the namespace has an accepted device. Tests that check the wizard itself live in the `WelcomeWizard` unit tests.
f3ead88 to
35a5f34
Compare
What
Adds the first Playwright E2E suite covering the authentication domain: sign-in, invalid credentials, sign-out, account lockout with recovery, invitation acceptance (logged-in, not-logged-in, new-user sign-up), and namespace switching.
Why
The E2E infrastructure landed but had only 3 starter tests. This fills out the auth domain with real user flows that catch wiring issues between the UI and the API: wrong button roles, missing redirects, lockout timing, invitation redirect loops.
Changes
auth.spec.ts: 8 tests across 4 describe blocks. Fixture users and namespaces are created per run via the stack CLI with randomized names to avoid collisions on a reused stackhelpers.ts: sharedsignIn,dismissWizard,createUser,createNamespacehelpers. Usesnetworkidleinstead of a fixed sleep for wizard detectionapi.ts: typed API helpers (login,createInvitationLink) using Playwright'sAPIRequestContextfor test fixture creationenv.ts: added edition awareness (isCommunity,isEnterprise,isCloud) for future edition-gated testslinkas required in thegenerateInvitationLink200 response (the generated type had it optional)Testing