apple: macOS (tvOS, visionOS) versions are no longer invisible: every version and review submission lookup is per platform; status, listing, listing pull, resubmit, submit, release and screenshots take --platform and otherwise pick the platform that has the version they need (refuse naming both when several do); status, validate, release status, the report and the desktop label versions with their platform; MCP and owner actions get platform; pitfall 77
This commit is contained in:
parent
1736300784
commit
47dfd372fe
30 changed files with 423 additions and 127 deletions
|
|
@ -230,7 +230,7 @@ describe('apple submit --build <n> (a first submission, the desktop owner action
|
|||
s.asc.res.get('ver-1')!.attributes.appVersionState = 'READY_FOR_SALE';
|
||||
const p = project(ONE);
|
||||
await expect(appleSubmit(p.ctx(['--build', '8', '--version', '1.0.0']))).rejects.toThrow(/READY_FOR_SALE: only a version in Prepare for Submission/);
|
||||
await expect(appleSubmit(p.ctx(['--build', '8']))).rejects.toThrow(/no App Store version to submit/);
|
||||
await expect(appleSubmit(p.ctx(['--build', '8']))).rejects.toThrow(/no iOS App Store version to submit/);
|
||||
});
|
||||
});
|
||||
|
||||
|
|
@ -381,18 +381,18 @@ describe('apple status', () => {
|
|||
rejected();
|
||||
const p = project(CONFIG);
|
||||
const r = await capture(() => appleStatus(p.ctx([])));
|
||||
expect(r.out).toContain('review submission rs-old is back from App Review with UNRESOLVED_ISSUES');
|
||||
expect(r.out).toMatch(/app version 1\.0\.0\s+REJECTED/);
|
||||
expect(r.out).toContain('review submission rs-old (iOS) is back from App Review with UNRESOLVED_ISSUES');
|
||||
expect(r.out).toMatch(/app version 1\.0\.0 \(iOS\)\s+REJECTED/);
|
||||
expect(r.out).toMatch(/inAppPurchaseVersion iapv-gems\s+READY_FOR_REVIEW/);
|
||||
expect(r.out).toContain('resubmit with: storebound apple resubmit --build <n>');
|
||||
expect(r.out).toMatch(/app version 1\.0\.0\s+REJECTED \(not resolved/);
|
||||
expect(r.out).toMatch(/app version 1\.0\.0 \(iOS\)\s+REJECTED \(not resolved/);
|
||||
});
|
||||
|
||||
test('an empty draft is labelled harmless; --cancel-submission on it answers 409 "not in cancellable state", left as is', async () => {
|
||||
s.asc.put({ type: 'reviewSubmissions', id: 'rs-empty', attributes: { platform: 'IOS', state: 'READY_FOR_REVIEW' }, rels: { app: APP } });
|
||||
const p = project(CONFIG);
|
||||
const r = await capture(() => appleStatus(p.ctx([])));
|
||||
expect(r.out).toContain('review submission rs-empty READY_FOR_REVIEW: empty draft (harmless; App Store Connect keeps it, not cancellable)');
|
||||
expect(r.out).toContain('review submission rs-empty iOS READY_FOR_REVIEW: empty draft (harmless; App Store Connect keeps it, not cancellable)');
|
||||
const c = await capture(() => appleStatus(p.ctx(['--cancel-submission', 'rs-empty', '--yes'])));
|
||||
expect([c.exit ?? 0, c.err]).toEqual([0, '']);
|
||||
expect(c.out).toContain('rs-empty is not cancellable');
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue