desktop: long findings wrap inside the Store readiness card (a build-folder path pushed the store chips out); the release timeline's rail no longer breaks after the current step; the rollout bar stays under its stage. scan: function words of the listing languages (German eine / der, French les, Turkish bir, ...) are not repeated keywords; the dev fixture has a long-path finding

This commit is contained in:
CRTkafa 2026-10-15 06:07:01 +08:00
parent 04647c079e
commit bd83d036ba
5 changed files with 37 additions and 7 deletions

View file

@ -233,6 +233,9 @@ describe('Google Play rules', () => {
for (const t of ['longer than 30 characters', 'Emoji', 'Rank, performance', 'ALL CAPS', 'Other apps or brands', 'Repeated keywords ("photo"'])
expect(m.some(x => x.includes(t))).toBe(true);
expect(m.find(x => x.includes('Repeated'))).toContain('and a keyword list');
// function words of other languages are grammar, not stuffing (a German description used "eine" 10x)
const de = await scanVariant('play-listing', { 'store/listing.md': s => s.replace(/\bphotos?\b/gi, w => `${w} eine der und eine`) });
expect(de.findings.filter(f => f.rule === 'play-metadata').map(f => f.title).join('\n')).not.toMatch(/"(eine|der|und)"/);
expect(find(r.findings, 'play-payments')!.evidence[0]).toMatchObject({ file: 'store/listing.md', line: 22 });
expect(find(r.findings, 'play-impersonation')).toMatchObject({ severity: 'low', title: expect.stringContaining('"instagram"') });
const ok = await scanVariant('play-listing', { 'storebound.config.ts': s => s.replace('org.example.instagramsaver', 'org.example.snapsaver') });