From c8ca44739af4e41e069fdb4dfa7c792842ff3ebd Mon Sep 17 00:00:00 2001 From: Vincent Koc Date: Tue, 23 Jun 2026 11:51:48 +0800 Subject: [PATCH] fix(qa): exclude archived categories from all profile --- extensions/qa-lab/src/coverage-report.test.ts | 27 +++++++++++++++++++ extensions/qa-lab/src/scorecard-taxonomy.ts | 2 +- 2 files changed, 28 insertions(+), 1 deletion(-) diff --git a/extensions/qa-lab/src/coverage-report.test.ts b/extensions/qa-lab/src/coverage-report.test.ts index 9fb6b8a1c4e..948b9ac1f27 100644 --- a/extensions/qa-lab/src/coverage-report.test.ts +++ b/extensions/qa-lab/src/coverage-report.test.ts @@ -21,6 +21,7 @@ function testMaturityTaxonomy(params?: { coverageIds?: readonly string[]; featureCoverageIds?: readonly (readonly string[])[]; includeAllCategories?: boolean; + includeArchivedSurface?: boolean; profileCategoryIds?: readonly string[]; }): QaMaturityTaxonomy { const categoryId = params?.categoryId ?? TEST_EXECUTABLE_CATEGORY_ID; @@ -74,6 +75,27 @@ function testMaturityTaxonomy(params?: { }, ], }, + ...(params?.includeArchivedSurface + ? [ + { + id: "archived-surface", + name: "Archived surface", + family: "test", + level: "experimental", + archived: true, + categories: [ + { + id: "legacy-category", + name: "Legacy category", + category_note: "legacy-category.md", + docs: [], + search_anchors: [], + features: [{ name: "legacy.feature", coverageIds: ["legacy.feature"] }], + }, + ], + }, + ] + : []), ], }; } @@ -445,6 +467,7 @@ describe("qa coverage report", () => { const report = buildQaScorecardTaxonomyReport({ taxonomy: testMaturityTaxonomy({ includeAllCategories: true, + includeArchivedSurface: true, }), repoRoot: process.cwd(), scenarios: [], @@ -454,6 +477,10 @@ describe("qa coverage report", () => { TEST_EXECUTABLE_CATEGORY_ID, ]); expect(report.requiredCategoryCount).toBe(1); + expect(report.categoryCount).toBe(1); + expect(report.profiles.find((profile) => profile.id === "release")?.categoryIds).not.toContain( + "archived-surface.legacy-category", + ); }); it("reports profile categories missing primary coverage evidence", () => { diff --git a/extensions/qa-lab/src/scorecard-taxonomy.ts b/extensions/qa-lab/src/scorecard-taxonomy.ts index 45bb9b432e9..4793738df5e 100644 --- a/extensions/qa-lab/src/scorecard-taxonomy.ts +++ b/extensions/qa-lab/src/scorecard-taxonomy.ts @@ -802,7 +802,7 @@ function buildMaturityRefs(taxonomy: QaMaturityTaxonomy | null) { return { categories, coverageIds }; } - for (const surface of taxonomy.surfaces) { + for (const surface of activeQaMaturityTaxonomySurfaces(taxonomy)) { for (const category of surface.categories) { const categoryId = `${surface.id}.${category.id}`; const features = category.features.map((feature) => ({