CluPilotCloud/tests/Feature/Auth
nexxo 2321854967
tests / pest (push) Failing after 8m17s Details
tests / assets (push) Successful in 19s Details
tests / release (push) Has been skipped Details
Discard an unconfirmed registration, and sweep the abandoned ones
"Abmelden und neu registrieren" was advice that could not work. Signing out
frees nothing: the address is still held by the unique index, so registering
again with the address somebody meant fails — and every abandoned attempt
stayed in `users` for ever. Reported exactly that way, and it was right.

The button discards the account instead. Only an UNCONFIRMED one, and only
one with nothing behind it: the webhook creates a customer's login from a
paid checkout, so a user can sit on this page unconfirmed while already
having a contract, and deleting that is data loss dressed up as a
convenience. It refuses and says where to go. A confirmed account is closed,
not discarded — that is ConfirmCloseAccount, with an invoice history behind
it.

R23: confirmed in a modal. The modal mutates nothing; it dispatches the event
the page listens for, so the checks stay in the one place they already are
rather than being duplicated where they could drift.

And nothing has to be discarded by hand. clupilot:prune-unverified removes
registrations nobody confirmed after five days — long enough for somebody who
signed up on a Friday and found the mail in a spam folder on Monday, short
enough that a typo does not hold the correct address for a month. It skips a
confirmed account whatever its age, and any account with a customer record
behind it, matched on user_id AND on the address, because either link means
somebody is a customer. Every removal is logged with the address: a line that
disappears is what somebody asks about later, and a count answers nothing.

The deadline is said on the page as well as in the mail. Somebody who never
received the mail is looking at the page, and the deadline is the reason they
do not have to do anything about an attempt they abandon.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-30 14:08:02 +02:00
..
BrandFactsTest.php Say EU and stop there, as the approved template does 2026-07-28 09:19:24 +02:00
LoginTest.php Send an already signed-in operator back to the console, not the portal 2026-07-28 15:55:39 +02:00
OperatorLoginTest.php Send an already signed-in operator back to the console, not the portal 2026-07-28 15:55:39 +02:00
OperatorTwoFactorChallengeTest.php Refuse a two-factor completion for a revoked operator 2026-07-28 15:47:39 +02:00
PasswordResetTest.php Keep a register of what was sent, and answer the customer from here 2026-07-29 21:02:36 +02:00
RegisterTest.php Ask whether they are a consumer, and let one change their mind 2026-07-29 21:06:06 +02:00
TwoFactorChallengeTest.php feat(portal): Fortify auth + Login/2FA/Dashboard + component kit 2026-07-25 01:20:25 +02:00
UnverifiedAccountTest.php Discard an unconfirmed registration, and sweep the abandoned ones 2026-07-30 14:08:02 +02:00