From c3ff7722a3b6ed04d39d870ae238cae1f280ab22 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 annotations --- packages/html-reporter/src/filter.ts | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/packages/html-reporter/src/filter.ts b/packages/html-reporter/src/filter.ts index 249c338c9a..da9978b844 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; } @@ -127,7 +133,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; } } @@ -140,6 +153,7 @@ type SearchValues = { line: string; column: string; labels: string[]; + annotations: string[]; }; const searchValuesSymbol = Symbol('searchValues');