0.7.0: version (package, plugin and extension manifests), changelog section with summary; check no longer counts owner-only App content steps (IARC Terms, demo account typing) as missing config answers; the check shot shows a ready project (init plus icons, apple.name, App content answers, demo account): all good

This commit is contained in:
CRTkafa 2026-10-13 04:19:39 +08:00
parent 36a8bf9625
commit ba8cfd2594
11 changed files with 69 additions and 19 deletions

View file

@ -2,7 +2,7 @@
// the in-page helper and the config fields behind them. Pure; the facts were verified on a real Play Console
// (2026-10-12); every id here is a placeholder.
import { describe, expect, test } from 'bun:test';
import { type ShipConfig, validateConfig, validateExtras } from '../cli/lib/config';
import { IARC_QUESTIONS, type ShipConfig, validateConfig, validateExtras } from '../cli/lib/config';
import { consoleAnswers, PLAN_FORM_IDS, PLAN_ONLY_FORM_IDS } from '../cli/lib/console-answers';
import { formDef, forbiddenTick } from '../cli/lib/console-forms';
import { consolePlan, IN_PAGE_LOOP, playConsoleReminders, planText } from '../cli/lib/console-plan';
@ -281,6 +281,13 @@ describe('verify, check, validate, config and MCP for the new forms', () => {
expect(set.hints.some(h => h.includes('ClassInd'))).toBe(true);
expect(set.warnings.some(w => /Play App content answer\(s\) are not in the config/.test(w))).toBe(true);
expect(playConsoleReminders({ ...base, play: undefined } as ShipConfig)).toEqual({ warnings: [], hints: [] });
// every config answer given: the IARC Terms agreement and the demo account typing stay owner steps, no warning
const answered = { ...base, reviewAccess: { signInRequired: true, instructions: 'Sign in with the demo account.' }, console: { ...base.console,
contentRating: { category: 'other', answers: Object.fromEntries(IARC_QUESTIONS.map(q => [q, false])), details: { miscellaneous: { naziSymbols: false, koreaHistory: false, terrorism: false, crimes: false } } },
targetAudience: { ages: ['18-over'], appealsToChildren: false, containsAds: false },
appContent: { government: false, financialFeatures: false, healthFeatures: false } } } as ShipConfig;
expect(consolePlan('play-app-content', answered).askOwner.length).toBeGreaterThan(0);
expect(playConsoleReminders(answered).warnings.filter(w => /App content answer/.test(w))).toEqual([]);
});
test('validate: the category reminder (ok with one, warn without), nothing when not passed', () => {