From 5f7a2285be3b293be4c3fc614574dd2550af9ef3 Mon Sep 17 00:00:00 2001 From: Sergey Kozyrenko Date: Sat, 25 Jul 2026 03:57:53 +0700 Subject: [PATCH] test(e2e): count palette offenders instead of deduping them MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The gate compared `[...new Set(offenders)]` against ACCEPTED, so a waiver that names one node absorbed any number of nodes carrying the same token — a second element reusing an already-waived off-palette class stayed green, against the "waive one node, not a rule" contract. Compare the sorted offender list directly: two nodes with a waived token now fail where one is accepted. All 18 scans stay green (each waived token appears exactly once today). Co-Authored-By: Claude Opus 4.8 --- frontend/e2e/specs/cross/palette.spec.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/frontend/e2e/specs/cross/palette.spec.ts b/frontend/e2e/specs/cross/palette.spec.ts index 9ead8712..4376b7ae 100644 --- a/frontend/e2e/specs/cross/palette.spec.ts +++ b/frontend/e2e/specs/cross/palette.spec.ts @@ -105,7 +105,7 @@ test.describe('palette compliance', { tag: '@cross' }, () => { const offenders = await scanOffenders(page); const key = `${routes.settings.providers} (populated)`; - expect([...new Set(offenders)], `off-palette colours on ${key}`).toEqual(ACCEPTED[key] ?? []); + expect(offenders.sort(), `off-palette colours on ${key}`).toEqual([...(ACCEPTED[key] ?? [])].sort()); }); }); @@ -119,8 +119,8 @@ test.describe('palette compliance', { tag: '@cross' }, () => { const offenders = await scanOffenders(page); - expect([...new Set(offenders)], `off-palette colours on ${entry.path}`).toEqual( - ACCEPTED[entry.path] ?? [], + expect(offenders.sort(), `off-palette colours on ${entry.path}`).toEqual( + [...(ACCEPTED[entry.path] ?? [])].sort(), ); }); @@ -136,7 +136,7 @@ test.describe('palette compliance', { tag: '@cross' }, () => { const offenders = await scanOffenders(page); const key = `${entry.path} [${tab.name}]`; - expect([...new Set(offenders)], `off-palette colours on ${key}`).toEqual(ACCEPTED[key] ?? []); + expect(offenders.sort(), `off-palette colours on ${key}`).toEqual([...(ACCEPTED[key] ?? [])].sort()); }); } });