apple listing: asking for the version that is in review says it is locked (it said "already exists; a new version needs a higher number"); play images: a listing language missing from languages[] is skipped with the fix instead of stopping the run (play listing pushes its text). Both found by the live dry-run sweep; tests

This commit is contained in:
CRTkafa 2026-10-14 08:43:59 +08:00
parent 9d6f741092
commit b29f1c407c
4 changed files with 28 additions and 1 deletions

View file

@ -36,3 +36,19 @@ describe('bugs the matrix found', () => {
for (const f of ['cli/reviews.ts', 'cli/apple/previews.ts']) expect(readFileSync(join(ROOT, f), 'utf8'), f).not.toMatch(/\.split\('\/'\)\.pop\(\)/);
});
});
// live sweep (2026-10-14): a listing file with a tr-TR section the config's languages[] does not have stopped
// `play images --dry` with "tr-TR: no entry in languages[] has this Play code" while `play listing` pushes that text
describe('live sweep', () => {
test('play images skips a listing language that is not in languages[] (with the fix) instead of failing', async () => {
const { run: playImages } = await import('../cli/play/images');
const listing = (lang: string) => `## ${lang}\n<!-- play: ${lang} -->\n\n### Play short description\n\`\`\`\nNotes.\n\`\`\`\n\n### Play full description\n\`\`\`\nNotes for everyone.\n\`\`\`\n`;
const cfg = { ...BASE, languages: [{ id: 'en', apple: 'en-US', play: 'en-US' }], play: { ...BASE.play!, listing: 'store/listing.md' } };
const p = project(cfg, { 'store/listing.md': `# Play\n\n${listing('en-US')}\n${listing('tr-TR')}` });
let msg = '';
const r = await capture(() => playImages(p.ctx(['--dry']))).catch(e => { msg = (e as Error).message; return null; });
expect(msg).not.toContain('no entry in languages[] has this Play code');
if (r) expect(r.out + r.err).toContain("skipped tr-TR: in the listing file but no entry in languages[] has play: 'tr-TR'");
else expect(msg).toMatch(/en-US/); // en-US has no renders in the temp project: that error, not the tr-TR one
});
});