From a7c45a156bd00a8b026d3e1876be23dd6fd333d4 Mon Sep 17 00:00:00 2001 From: Aman Kumar Date: Mon, 25 Mar 2024 19:43:11 +0530 Subject: [PATCH] Filter test case in report by annoations --- packages/html-reporter/src/filter.ts | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/packages/html-reporter/src/filter.ts b/packages/html-reporter/src/filter.ts index 97cf675936..1b4fc18209 100644 --- a/packages/html-reporter/src/filter.ts +++ b/packages/html-reporter/src/filter.ts @@ -15,12 +15,12 @@ */ import type { TestCaseSummary } from './types'; - export class Filter { project: string[] = []; status: string[] = []; text: string[] = []; labels: string[] = []; + annotations: string[] = []; empty(): boolean { return this.project.length + this.status.length + this.text.length === 0; @@ -32,6 +32,7 @@ export class Filter { const status = new Set(); const text: string[] = []; const labels = new Set(); + const annotations = new Set(); for (const token of tokens) { if (token.startsWith('p:')) { project.add(token.slice(2)); @@ -45,6 +46,10 @@ export class Filter { labels.add(token); continue; } + if (token.startsWith('a:')) { + annotations.add(token.slice(2)); + continue; + } text.push(token.toLowerCase()); } @@ -53,6 +58,7 @@ export class Filter { filter.project = [...project]; filter.status = [...status]; filter.labels = [...labels]; + filter.annotations = [...annotations]; return filter; } @@ -114,6 +120,7 @@ export class Filter { line: String(test.location.line), column: String(test.location.column), labels: test.tags.map(tag => tag.toLowerCase()), + annotations: test.annotations.map(a => a.type.toLowerCase() + ':' + a.description?.toLocaleLowerCase()) }; (test as any).searchValues = searchValues; } @@ -144,7 +151,14 @@ export class Filter { if (!matches) return false; } - + if (this.annotations.length) { + const matches = this.annotations.every(annotation => + searchValues.annotations.some(_annotation => ( + _annotation.includes(annotation) + ))); + if (!matches) + return false; + } return true; } } @@ -157,5 +171,6 @@ type SearchValues = { line: string; column: string; labels: string[]; + annotations: string[]; };