review access: guest-play apps rejected by Play as a login wall (empty name field, disabled Continue, a code link on the first screen): check warns for a Play app with a first-run gate or IAP and no reviewAccess.instructions; with guest steps the play-sign-in-details plan declares one entry without credentials, the dialog's required full-access box as the owner's step; store-pitfalls 73
This commit is contained in:
parent
d6070cc185
commit
824758179b
11 changed files with 202 additions and 15 deletions
|
|
@ -185,11 +185,11 @@ describe('agent-only Play plans: shape, URLs, never-press lists, the owner batch
|
|||
// in .storebound/credentials.json: the agent types it, never printed (no value in the plan)
|
||||
expect(cred).toMatchObject({ status: 'certain', value: null, action: 'type', text: 'from .storebound/credentials.json (never printed)' });
|
||||
expect(cred.note).toContain('reviewDemoAccount: present');
|
||||
expect(p.ownerBatch.map(o => o.kind)).toEqual(['final']);
|
||||
expect(p.ownerBatch.map(o => o.kind)).toEqual(['agreement', 'final']);
|
||||
// kept out of .storebound: the owner types it (in the owner batch, before the run)
|
||||
const own = consolePlan('play-sign-in-details', { ...base, reviewAccess: { signInRequired: true, instructions: 'Sign in with the demo account.' } } as ShipConfig, { demoAccount: false });
|
||||
expect(own.answers.find(a => a.id === 'credentials')).toMatchObject({ status: 'ask-owner', value: null });
|
||||
expect(own.ownerBatch.map(o => [o.when, o.kind])).toEqual([['before', 'credentials'], ['after', 'final']]);
|
||||
expect(own.ownerBatch.map(o => [o.when, o.kind])).toEqual([['before', 'credentials'], ['after', 'agreement'], ['after', 'final']]);
|
||||
expect(JSON.stringify(own)).not.toMatch(/password"\s*:/i);
|
||||
expect(consolePlan('play-sign-in-details', base).answers.map(a => a.status)).toEqual(['ask-owner']);
|
||||
});
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue