diff --git a/scripts/eval-flake-rank.ts b/scripts/eval-flake-rank.ts index ca46a3eb8..363fd66d8 100644 --- a/scripts/eval-flake-rank.ts +++ b/scripts/eval-flake-rank.ts @@ -189,14 +189,17 @@ export function caseTier(id: string, registry: Registry = LIVE_REGISTRY): string /** * Attribute a legacy eval-store record to a registry id: the case-shard slug - * suffix (`--`), the recorded name, a CASE_TEST_NAMES label, or the - * only id its shard file registers. Anything else is unattributed (null). + * suffix (`--`), the recorded name or its exact slug (`/qa b6-static` + * is `qa-b6-static`), a CASE_TEST_NAMES label, or the only id its shard file + * registers. Anything else is unattributed (null). */ export function attributeLegacyRecord(name: string, shard: string | undefined, registry: Registry = LIVE_REGISTRY): string | null { const known = (id: string) => id in registry.kinds; const [slugFile, slugCase] = (shard ?? '').split('--'); if (slugCase && known(slugCase)) return slugCase; if (known(name)) return name; + const slug = name.toLowerCase().replace(/[^a-z0-9]+/g, '-').replace(/^-+|-+$/g, ''); + if (known(slug)) return slug; const labeled = Object.entries(registry.testNames).find(([, label]) => label === name)?.[0]; if (labeled && known(labeled)) return labeled; if (slugFile) { diff --git a/test/eval-flake-rank.test.ts b/test/eval-flake-rank.test.ts index 0eaa1ddab..f3d815c72 100644 --- a/test/eval-flake-rank.test.ts +++ b/test/eval-flake-rank.test.ts @@ -281,6 +281,8 @@ describe('pass-rates inputs', () => { test('legacy records attribute by shard suffix, id, label or single-owner file, else stay unattributed', () => { expect(attributeLegacyRecord('/anything', 'skill-e2e-b--beh-b', registry)).toBe('beh-b'); expect(attributeLegacyRecord('rule-a', 'skill-e2e-zzz', registry)).toBe('rule-a'); + expect(attributeLegacyRecord('/Rule a', 'skill-e2e-zzz', registry)).toBe('rule-a'); + expect(attributeLegacyRecord('/rule a extra', 'skill-e2e-zzz', registry)).toBeNull(); expect(attributeLegacyRecord('/gate c labeled', undefined, registry)).toBe('gate-c'); expect(attributeLegacyRecord('/a display name', 'skill-e2e-a', registry)).toBe('rule-a'); expect(attributeLegacyRecord('/shared display', 'skill-e2e-shared', registry)).toBeNull();