Skip to content

feat(pro): seed Pro on any state, via qa-seeder 0.4.1 - #164

Closed
Bilb wants to merge 1 commit into
mainfrom
feat/seeded-pro-accounts
Closed

feat(pro): seed Pro on any state, via qa-seeder 0.4.1#164
Bilb wants to merge 1 commit into
mainfrom
feat/seeded-pro-accounts

Conversation

@Bilb

@Bilb Bilb commented Aug 27, 2026

Copy link
Copy Markdown
Collaborator

No description provided.

`1userWithProAccess` is gone in 0.4.1, replaced by a `pro` option that composes with every state. That
is the point of the bump: a Pro fixture no longer needs a state key of its own, so the twelve specs
built on `2friends` can have a Pro Alice without a `2friendsOneWithProAccess` existing.

`BuildStateOptions` is now forwarded from both state builders - `openAppsWithState` for mobile,
`openSeededWindows` for desktop - and `open_Alice1`, `open_Alice1_Bob1_friends` and
`open_Alice1_with_contacts` take it.

`grantProToSeededUsers` mints for whichever users `pro` names, and does it BEFORE `linkDevices`: the
restore is the client's first sight of the account, so the gated startup fetch fires as it completes.
A grant landing after that answers `never`, and both clients then floor the next attempt at 60s from
that attempt - which is what makes a spec need `observeProGrant` at all.

Still `makeAccountPro` rather than the seeder's own `fetchProProof`. That one verifies the proof
against the key the instance actually signs with, which is worth having and worth a follow-up, but
this keeps the guards against granting to the shared moderation account and against a phrase that
does not derive the account under test.

Argument types now compose from `With*` intersections like `WithPlatform` already did, rather than
repeating `testInfo`/`testContext`/`stateOptions` inline in nine signatures.

Verified: the seeded-grant spec passes on Android (31.8s), iOS (23.3s) and Desktop.

One environment note found on the way. The devnet has a dead snode - 1540 of the 15 it registers,
every other one up - and the seeder picks a random snode on the account's swarm with no failover, so
seeding fails outright when a new account's swarm happens to include it. Unrelated to this change: an
untouched desktop seeded spec fails the same way. Worth either reviving that snode or teaching the
seeder to try another.
@Bilb

Bilb commented Aug 27, 2026

Copy link
Copy Markdown
Collaborator Author

Superseded by #165 and closed in its favour.

The qa-seeder 0.4.1 bump and the stateOptions plumbing are carried over intact, and Pro is granted to a seeded account passes on all three platforms there.

Merged with the other two because #159 builds directly on this — it cannot run without the BuildStateOptions threading added here — and #157 touches the same files, so the three conflict pairwise.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant