From de7c8a521daa6b79c923a7b65ec6c010d97300cf Mon Sep 17 00:00:00 2001 From: Vladimir Date: Thu, 22 Jan 2026 11:21:30 +0100 Subject: [PATCH] feat: support tags (#9478) --- docs/.vitepress/config.ts | 12 + docs/.vitepress/scripts/cli-generator.ts | 2 + docs/api/advanced/test-case.md | 6 + docs/api/advanced/test-specification.md | 5 + docs/api/advanced/test-suite.md | 1 + docs/api/index.md | 6 + docs/config/stricttags.md | 35 + docs/config/tags.md | 194 +++ docs/guide/cli-generated.md | 41 +- docs/guide/filtering.md | 18 + docs/guide/test-tags.md | 302 ++++ docs/public/ui/dark-ui-tags.png | Bin 0 -> 133431 bytes docs/public/ui/light-ui-tags.png | Bin 0 -> 139251 bytes packages/runner/src/collect.ts | 20 +- packages/runner/src/suite.ts | 104 +- packages/runner/src/types.ts | 2 + packages/runner/src/types/runner.ts | 28 + packages/runner/src/types/tasks.ts | 27 +- packages/runner/src/utils/collect.ts | 4 + packages/runner/src/utils/index.ts | 1 + packages/runner/src/utils/tags.ts | 277 ++++ packages/ui/client/components/FileDetails.vue | 45 +- .../client/components/explorer/Explorer.vue | 12 +- .../components/explorer/ExplorerItem.vue | 45 +- .../components/views/ViewTestReport.vue | 2 +- .../ui/client/composables/client/state.ts | 9 + .../client/composables/explorer/collector.ts | 16 +- .../ui/client/composables/explorer/expand.ts | 6 +- .../ui/client/composables/explorer/filter.ts | 28 +- .../ui/client/composables/explorer/search.ts | 2 + .../ui/client/composables/explorer/state.ts | 40 +- .../ui/client/composables/explorer/tree.ts | 16 +- .../ui/client/composables/explorer/types.ts | 6 +- .../ui/client/composables/explorer/utils.ts | 4 +- packages/ui/client/utils/task.ts | 14 +- packages/utils/src/helpers.ts | 4 + packages/vitest/src/node/ast-collect.ts | 98 +- packages/vitest/src/node/cli/cac.ts | 2 +- packages/vitest/src/node/cli/cli-api.ts | 5 +- packages/vitest/src/node/cli/cli-config.ts | 13 + .../vitest/src/node/config/resolveConfig.ts | 28 + .../vitest/src/node/config/serializeConfig.ts | 3 + packages/vitest/src/node/core.ts | 36 +- packages/vitest/src/node/logger.ts | 31 + packages/vitest/src/node/pool.ts | 8 +- packages/vitest/src/node/pools/browser.ts | 22 +- .../src/node/projects/resolveProjects.ts | 24 +- packages/vitest/src/node/reporters/json.ts | 2 + .../src/node/reporters/reported-tasks.ts | 13 + packages/vitest/src/node/tags.ts | 27 + .../vitest/src/node/test-specification.ts | 7 + packages/vitest/src/node/types/config.ts | 29 +- packages/vitest/src/public/config.ts | 1 + packages/vitest/src/public/index.ts | 3 +- packages/vitest/src/runtime/config.ts | 5 +- packages/vitest/src/runtime/types/utils.ts | 1 + packages/vitest/src/typecheck/collect.ts | 1 + packages/vitest/src/utils/test-helpers.ts | 58 +- test/browser/specs/runner.test.ts | 30 + test/browser/test/tags.test.ts | 13 + test/browser/vitest.config.mts | 5 + .../error-file-one-line-comment.test.ts | 8 + .../file-tags/error-file-tags.test.ts | 10 + .../valid-file-one-line-comment.test.ts | 9 + .../file-tags/valid-file-tags.test.ts | 11 + test/cli/fixtures/reporters/json-fail.test.ts | 2 +- test/cli/fixtures/reporters/vitest.config.ts | 3 + test/cli/fixtures/test-tags/basic.test.ts | 11 + test/cli/test/configureVitest.test.ts | 10 +- test/cli/test/reported-tasks.test.ts | 6 + .../reporters/__snapshots__/html.test.ts.snap | 9 +- .../reporters/__snapshots__/json.test.ts.snap | 3 + .../__snapshots__/reporters.test.ts.snap | 54 + test/cli/test/reporters/merge-reports.test.ts | 5 + test/cli/test/static-collect.test.ts | 293 +++- test/cli/test/test-tags.test.ts | 1274 +++++++++++++++++ test/core/test/test-tags-filter.test.ts | 544 +++++++ test/test-utils/index.ts | 17 +- test/ui/fixtures/sample.test.ts | 4 + test/ui/test/html-report.spec.ts | 18 +- test/ui/test/ui.spec.ts | 25 +- test/ui/vitest.config.ts | 4 + 82 files changed, 3955 insertions(+), 164 deletions(-) create mode 100644 docs/config/stricttags.md create mode 100644 docs/config/tags.md create mode 100644 docs/guide/test-tags.md create mode 100644 docs/public/ui/dark-ui-tags.png create mode 100644 docs/public/ui/light-ui-tags.png create mode 100644 packages/runner/src/utils/tags.ts create mode 100644 packages/vitest/src/node/tags.ts create mode 100644 test/browser/test/tags.test.ts create mode 100644 test/cli/fixtures/file-tags/error-file-one-line-comment.test.ts create mode 100644 test/cli/fixtures/file-tags/error-file-tags.test.ts create mode 100644 test/cli/fixtures/file-tags/valid-file-one-line-comment.test.ts create mode 100644 test/cli/fixtures/file-tags/valid-file-tags.test.ts create mode 100644 test/cli/fixtures/test-tags/basic.test.ts create mode 100644 test/cli/test/test-tags.test.ts create mode 100644 test/core/test/test-tags-filter.test.ts diff --git a/docs/.vitepress/config.ts b/docs/.vitepress/config.ts index 4bc56195e..15ce40ce0 100644 --- a/docs/.vitepress/config.ts +++ b/docs/.vitepress/config.ts @@ -466,6 +466,14 @@ export default ({ mode }: { mode: string }) => { text: 'sequence', link: '/config/sequence', }, + { + text: 'tags', + link: '/config/tags', + }, + { + text: 'strictTags', + link: '/config/stricttags', + }, { text: 'typecheck', link: '/config/typecheck', @@ -769,6 +777,10 @@ export default ({ mode }: { mode: string }) => { text: 'Test Filtering', link: '/guide/filtering', }, + { + text: 'Test Tags', + link: '/guide/test-tags', + }, { text: 'Test Context', link: '/guide/test-context', diff --git a/docs/.vitepress/scripts/cli-generator.ts b/docs/.vitepress/scripts/cli-generator.ts index 1e82a8bd5..ee39aa62d 100644 --- a/docs/.vitepress/scripts/cli-generator.ts +++ b/docs/.vitepress/scripts/cli-generator.ts @@ -42,6 +42,8 @@ const skipConfig = new Set([ 'browser.name', 'browser.fileParallelism', 'clearCache', + 'tagsFilter', + 'listTags', ]) function resolveOptions(options: CLIOptions, parentName?: string) { diff --git a/docs/api/advanced/test-case.md b/docs/api/advanced/test-case.md index 1574a7053..c9601650b 100644 --- a/docs/api/advanced/test-case.md +++ b/docs/api/advanced/test-case.md @@ -105,12 +105,18 @@ interface TaskOptions { readonly shuffle: boolean | undefined readonly retry: number | undefined readonly repeats: number | undefined + readonly tags: string[] | undefined + readonly timeout: number | undefined readonly mode: 'run' | 'only' | 'skip' | 'todo' } ``` The options that test was collected with. +## tags 4.1.0 {#tags} + +[Tags](/guide/test-tags) that were implicitly or explicitly assigned to the test. + ## ok ```ts diff --git a/docs/api/advanced/test-specification.md b/docs/api/advanced/test-specification.md index 5ed2e721d..7142bba96 100644 --- a/docs/api/advanced/test-specification.md +++ b/docs/api/advanced/test-specification.md @@ -11,6 +11,7 @@ const specification = project.createSpecification( testLines: [20, 40], testNamePattern: /hello world/, testIds: ['1223128da3_0_0_0', '1223128da3_0_0'], + testTagsFilter: ['frontend and backend'], } // optional test filters ) ``` @@ -82,6 +83,10 @@ A regexp that matches the name of the test in this module. This value will overr The ids of tasks inside of this specification to run. +## testTagsFilter 4.1.0 {#testtagsfilter} + +The [tags filter](/guide/test-tags#syntax) that a test must pass in order to be included in the run. Multiple filters are treated as `AND`. + ## toJSON ```ts diff --git a/docs/api/advanced/test-suite.md b/docs/api/advanced/test-suite.md index 96d39455f..56abb67ec 100644 --- a/docs/api/advanced/test-suite.md +++ b/docs/api/advanced/test-suite.md @@ -106,6 +106,7 @@ interface TaskOptions { readonly shuffle: boolean | undefined readonly retry: number | undefined readonly repeats: number | undefined + readonly tags: string[] | undefined readonly mode: 'run' | 'only' | 'skip' | 'todo' } ``` diff --git a/docs/api/index.md b/docs/api/index.md index 298a6b3bb..850a79a06 100644 --- a/docs/api/index.md +++ b/docs/api/index.md @@ -29,9 +29,15 @@ interface TestOptions { * @default 0 */ repeats?: number + /** + * Custom tags of the test. Useful for filtering tests. + */ + tags?: string[] | string } ``` + + When a test function returns a promise, the runner will wait until it is resolved to collect async expectations. If the promise is rejected, the test will fail. ::: tip diff --git a/docs/config/stricttags.md b/docs/config/stricttags.md new file mode 100644 index 000000000..f26b81347 --- /dev/null +++ b/docs/config/stricttags.md @@ -0,0 +1,35 @@ +--- +title: strictTags | Config +outline: deep +--- + +# strictTags 4.1.0 {#stricttags} + +- **Type:** `boolean` +- **Default:** `true` +- **CLI:** `--strict-tags`, `--no-strict-tags` + +Should Vitest throw an error if test has a [`tag`](/config/tags) that is not defined in the config to avoid silently doing something surprising due to mistyped names (applying the wrong configuration or skipping the test due to a `--tags-filter` flag). + +Note that Vitest will always throw an error if `--tags-filter` flag defines a tag not present in the config. + +For example, this test will throw an error because the tag `fortnend` has a typo (it should be `frontend`): + +::: code-group +```js [form.test.js] +test('renders a form', { tags: ['fortnend'] }, () => { + // ... +}) +``` +```js [vitest.config.js] +import { defineConfig } from 'vitest/config' + +export default defineConfig({ + test: { + tags: [ + { name: 'frontend' }, + ], + }, +}) +``` +::: diff --git a/docs/config/tags.md b/docs/config/tags.md new file mode 100644 index 000000000..6ef0a77c5 --- /dev/null +++ b/docs/config/tags.md @@ -0,0 +1,194 @@ +--- +title: tags | Config +outline: deep +--- + +# tags 4.1.0 {#tags} + +- **Type:** `TestTagDefinition[]` +- **Default:** `[]` + +Defines all [available tags](/guide/test-tags) in your test project. By default, if test defines a name not listed here, Vitest will throw an error, but this can be configured via a [`strictTags`](/config/stricttags) option. + +If you are using [`projects`](/config/projects), they will inherit all global tags definitions automatically. + +Use [`--tags-filter`](/guide/test-tags#syntax) to filter tests by their tags. Use [`--list-tags`](/guide/cli#listtags) to print every tag in your Vitest workspace. + +## name + +- **Type:** `string` +- **Required:** `true` + +The name of the tag. This is what you use in the `tags` option in tests. + +```ts +export default defineConfig({ + test: { + tags: [ + { name: 'unit' }, + { name: 'e2e' }, + ], + }, +}) +``` + +::: tip +If you are using TypeScript, you can enforce what tags are available by augmenting the `TestTags` type with a property that contains a union of strings (make sure this file is included by your `tsconfig`): + +```ts [vitest.shims.ts] +import 'vitest' + +declare module 'vitest' { + interface TestTags { + tags: + | 'frontend' + | 'backend' + | 'db' + | 'flaky' + } +} +``` +::: + +## description + +- **Type:** `string` + +A human-readable description for the tag. This will be shown in UI and inside error messages when a tag is not found. + +```ts +export default defineConfig({ + test: { + tags: [ + { + name: 'slow', + description: 'Tests that take a long time to run.', + }, + ], + }, +}) +``` + +## priority + +- **Type:** `number` +- **Default:** `Infinity` + +Priority for merging options when multiple tags with the same options are applied to a test. Lower number means higher priority (e.g., priority `1` takes precedence over priority `3`). + +```ts +export default defineConfig({ + test: { + tags: [ + { + name: 'flaky', + timeout: 30_000, + priority: 1, // higher priority + }, + { + name: 'db', + timeout: 60_000, + priority: 2, // lower priority + }, + ], + }, +}) +``` + +When a test has both tags, the `timeout` will be `30_000` because `flaky` has a higher priority. + +## Test Options + +Tags can define test options that will be applied to every test marked with the tag. These options are merged with the test's own options, with the test's options taking precedence. + +### timeout + +- **Type:** `number` + +Test timeout in milliseconds. + +### retry + +- **Type:** `number | { count?: number, delay?: number, condition?: RegExp }` + +Retry configuration for the test. If a number, specifies how many times to retry. If an object, allows fine-grained retry control. + +### repeats + +- **Type:** `number` + +How many times the test will run again. + +### concurrent + +- **Type:** `boolean` + +Whether suites and tests run concurrently. + +### sequential + +- **Type:** `boolean` + +Whether tests run sequentially. + +### skip + +- **Type:** `boolean` + +Whether the test should be skipped. + +### only + +- **Type:** `boolean` + +Should this test be the only one running in a suite. + +### todo + +- **Type:** `boolean` + +Whether the test should be skipped and marked as a todo. + +### fails + +- **Type:** `boolean` + +Whether the test is expected to fail. If it does, the test will pass, otherwise it will fail. + +## Example + +```ts +import { defineConfig } from 'vitest/config' + +export default defineConfig({ + test: { + tags: [ + { + name: 'unit', + description: 'Unit tests.', + }, + { + name: 'e2e', + description: 'End-to-end tests.', + timeout: 60_000, + }, + { + name: 'flaky', + description: 'Flaky tests that need retries.', + retry: process.env.CI ? 3 : 0, + priority: 1, + }, + { + name: 'slow', + description: 'Slow tests.', + timeout: 120_000, + }, + { + name: 'skip-ci', + description: 'Tests to skip in CI.', + skip: !!process.env.CI, + }, + ], + }, +}) +``` diff --git a/docs/guide/cli-generated.md b/docs/guide/cli-generated.md index 0ce15dfff..b1f59e61e 100644 --- a/docs/guide/cli-generated.md +++ b/docs/guide/cli-generated.md @@ -518,12 +518,26 @@ Default hook timeout in milliseconds (default: `10000`). Use `0` to disable time Stop test execution when given number of tests have failed (default: `0`) -### retry +### retry.count -- **CLI:** `--retry ` -- **Config:** [retry](/config/retry) +- **CLI:** `--retry.count ` +- **Config:** [retry.count](/config/retry#retry-count) -Retry the test specific number of times if it fails (default: `0`) +Number of times to retry a test if it fails (default: `0`) + +### retry.delay + +- **CLI:** `--retry.delay ` +- **Config:** [retry.delay](/config/retry#retry-delay) + +Delay in milliseconds between retry attempts (default: `0`) + +### retry.condition + +- **CLI:** `--retry.condition ` +- **Config:** [retry.condition](/config/retry#retry-condition) + +Regex pattern to match error messages that should trigger a retry. Only errors matching this pattern will cause a retry (default: retry on all errors) ### diff.aAnnotation @@ -792,12 +806,31 @@ Use `bundle` to bundle the config with esbuild or `runner` (experimental) to pro Start Vitest without running tests. Tests will be running only on change. This option is ignored when CLI file filters are passed. (default: `false`) +### listTags + +- **CLI:** `--listTags [type]` + +List all available tags instead of running tests. `--list-tags=json` will output tags in JSON format, unless there are no tags. + ### clearCache - **CLI:** `--clearCache` Delete all Vitest caches, including `experimental.fsModuleCache`, without running any tests. This will reduce the performance in the subsequent test run. +### tagsFilter + +- **CLI:** `--tagsFilter ` + +Run only tests with the specified tags. You can use logical operators `&&` (and), `||` (or) and `!` (not) to create complex expressions, see [Test Tags](/guide/test-tags#syntax) for more information. + +### strictTags + +- **CLI:** `--strictTags` +- **Config:** [strictTags](/config/stricttags) + +Should Vitest throw an error if test has a tag that is not defined in the config. (default: `true`) + ### experimental.fsModuleCache - **CLI:** `--experimental.fsModuleCache` diff --git a/docs/guide/filtering.md b/docs/guide/filtering.md index 8eefdc18f..93e8aa13d 100644 --- a/docs/guide/filtering.md +++ b/docs/guide/filtering.md @@ -89,6 +89,24 @@ describe('suite', () => { }) ``` +## Filtering Tags + +If your test defines a [tag](/guide/test-tags), you can filter your tests with a `--tags-filter` option: + +```ts +test('renders a form', { tags: ['frontend'] }, () => { + // ... +}) + +test('calls an external API', { tags: ['backend'] }, () => { + // ... +}) +``` + +```shell +vitest --tags-filter=frontend +``` + ## Selecting Suites and Tests to Run Use `.only` to only run certain suites or tests diff --git a/docs/guide/test-tags.md b/docs/guide/test-tags.md new file mode 100644 index 000000000..463673255 --- /dev/null +++ b/docs/guide/test-tags.md @@ -0,0 +1,302 @@ +--- +title: Test Tags | Guide +outline: deep +--- + +# Test Tags 4.1.0 + +[`Tags`](/config/tags) allow you to mark tests and change their options based on the tag's definition. + +## Defining Tags + +Tags must be defined in your configuration file — Vitest does not provide any built-in tags. If a test uses a tag that isn't defined in the config, the test runner will throw an error. This prevents unexpected behavior from mistyped tag names. You can disable this check with the [`strictTags`](/config/stricttags) option. + +You must define a `name` of the tag, and you may define additional options that will be applied to every test marked with the tag, e.g., a `timeout`, or `retry`. For the full list of available options, see [`tags`](/config/tags). + +```ts [vitest.config.js] +import { defineConfig } from 'vitest/config' + +export default defineConfig({ + test: { + tags: [ + { + name: 'frontend', + description: 'Tests written for frontend.', + }, + { + name: 'backend', + description: 'Tests written for backend.', + }, + { + name: 'db', + description: 'Tests for database queries.', + timeout: 60_000, + }, + { + name: 'flaky', + description: 'Flaky CI tests.', + retry: process.env.CI ? 3 : 0, + timeout: 30_000, + priority: 1, + }, + ], + }, +}) +``` + +::: warning +If several tags have the same options and are used on the same test, they will be resolved in the order they were specified, or sorted by priority first (the lower the number, the higher the priority). Tags without a defined priority are merged first and will be overriden by higher priority ones: + +```ts +test('flaky database test', { tags: ['flaky', 'db'] }) +// { timeout: 30_000, retry: 3 } +``` + +Note that the `timeout` is 30 seconds (and not 60) because `flaky` tag has a priority of `1` while `db` (that defines 60 second timeout) has no priority. + +If test defines its own options, they will have the highest priority: + +```ts +test('flaky database test', { tags: ['flaky', 'db'], timeout: 120_000 }) +// { timeout: 120_000, retry: 3 } +``` +::: + +If you are using TypeScript, you can enforce what tags are available by augmenting the `TestTags` type with a property that contains a union of strings (make sure this file is included by your `tsconfig`): + +```ts [vitest.shims.ts] +import 'vitest' + +declare module 'vitest' { + interface TestTags { + tags: + | 'frontend' + | 'backend' + | 'db' + | 'flaky' + } +} +``` + +To see all your tags, you can use [`--list-tags`](/guide/cli#listtags) command: + +```shell +vitest --list-tags + +frontend: Tests written for frontend. +backend: Tests written for backend. +db: Tests for database queries. +flaky: Flaky CI tests. +``` + +To print it in JSON, pass down `--list-tags=json`: + +```json +{ + "tags": [ + { + "name": "frontend", + "description": "Tests written for frontend." + }, + { + "name": "backend", + "description": "Tests written for backend." + }, + { + "name": "db", + "description": "Tests for database queries.", + "timeout": 60000 + }, + { + "name": "flaky", + "description": "Flaky CI tests.", + "retry": 0, + "timeout": 30000, + "priority": 1 + } + ], + "projects": [] +} +``` + +## Using Tags in Tests + +You can apply tags to individual tests or entire suites using the `tags` option: + +```ts +import { describe, test } from 'vitest' + +test('renders homepage', { tags: ['frontend'] }, () => { + // ... +}) + +describe('API endpoints', { tags: ['backend'] }, () => { + test('returns user data', () => { + // This test inherits the "backend" tag from the parent suite + }) + + test('validates input', { tags: ['validation'] }, () => { + // This test has both "backend" (inherited) and "validation" tags + }) +}) +``` + +Tags are inherited from parent suites, so all tests inside a tagged `describe` block will automatically have that tag. + +It's also possible to define `tags` for every test in the file by using JSDoc's `@module-tag` at the top of the file: + +```ts +/** + * Auth tests + * @module-tag admin/pages/dashboard + * @module-tag acceptance + */ + +test('dashboard renders items', () => { + // ... +}) +``` + +::: danger +A `@module-tag` in a JSDoc comment applies to all tests in that file, not just the test it precedes. + +Consider this example: + +```js{3,10} +describe('forms', () => { + /** + * @module-tag frontend + */ + test('renders a form', () => { + // ... + }) + + /** + * @module-tag db + */ + test('db returns users', () => { + // ... + }) +}) +``` + +In this example, every test in the file will have both the `frontend` and `db` tags. To tag individual tests, use the options argument instead: + +```js{2,6} +describe('forms', () => { + test('renders a form', { tags: 'frontend' }, () => { + // ... + }) + + test('db returns users', { tags: 'db' }, () => { + // ... + }) +}) +``` +::: + +## Filtering Tests by Tag + +To run only tests with specific tags, use the [`--tags-filter`](/guide/cli#tagsfilter) CLI option: + +```shell +vitest --tags-filter=frontend +vitest --tags-filter="frontend and backend" +``` + +If you are running Vitest UI, you can start a filter with a `tag:` prefix to filter out tests by tags using the same tags expression sytax: + +The tags filter in Vitest UI +The tags filter in Vitest UI + +If you are using a programmatic API, you can pass down a `tagsFilter` option to [`startVitest`](/guide/advanced/#startvitest) or [`createVitest`](/guide/advanced/#createvitest): + +```ts +import { startVitest } from 'vitest/node' + +await startVitest('test', [], { + tagsFilter: ['frontend and backend'], +}) +``` + +Or you can create a [test specification](/api/advanced/test-specification) with your custom filters: + +```ts +const specification = vitest.getRootProject().createSpecification( + '/path-to-file.js', + { + testTagsFilter: ['frontend and backend'], + }, +) +``` + +### Syntax + +You can combine tags in different ways. Vitest supports these keywords: + +- `and` or `&&` to include both expressions +- `or` or `||` to include at least one expression +- `not` or `!` to exclude the expression +- `*` to match any number of characters (0 or more) +- `()` to group expressions and override precedence + +The parser follows standard [operator precedence](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Operator_precedence): `not`/`!` has the highest priority, then `and`/`&&`, then `or`/`||`. Use parentheses to override default precedence. + +::: warning Reserved Names +Tag names cannot be `and`, `or`, or `not` (case-insensitive) as these are reserved keywords. Tag names also cannot contain special characters (`(`, `)`, `&`, `|`, `!`, `*`, spaces) as these are used by the expression parser. +::: + +### Wildcards + +You can use a wildcard (`*`) to match any number of characters: + +```shell +vitest --tags-filter="unit/*" +``` + +This will match tags like `unit/components`, `unit/utils`, etc. + +### Excluding Tags + +To exclude tests with a specific tag, add an exclamation mark (`!`) at the start or a "not" keyword: + +```shell +vitest --tags-filter="!slow and not flaky" +``` + +### Examples + +Here are some common filtering patterns: + +```shell +# Run only unit tests +vitest --tags-filter="unit" + +# Run tests that are both frontend AND fast +vitest --tags-filter="frontend and fast" + +# Run tests that are either unit OR e2e +vitest --tags-filter="unit or e2e" + +# Run all tests except slow ones +vitest --tags-filter="!slow" + +# Run frontend tests that are not flaky +vitest --tags-filter="frontend && !flaky" + +# Run tests matching a wildcard pattern +vitest --tags-filter="api/*" + +# Complex expression with parentheses +vitest --tags-filter="(unit || e2e) && !slow" + +# Run database tests that are either postgres or mysql, but not slow +vitest --tags-filter="db && (postgres || mysql) && !slow" +``` + +You can also pass multiple `--tags-filter` flags. They are combined with AND logic: + +```shell +# Run tests that match (unit OR e2e) AND are NOT slow +vitest --tags-filter="unit || e2e" --tags-filter="!slow" +``` diff --git a/docs/public/ui/dark-ui-tags.png b/docs/public/ui/dark-ui-tags.png new file mode 100644 index 0000000000000000000000000000000000000000..de207474485d33220b2d2fc471959fa2584706b1 GIT binary patch literal 133431 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 z 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 literal 0 HcmV?d00001 diff --git a/docs/public/ui/light-ui-tags.png b/docs/public/ui/light-ui-tags.png new file mode 100644 index 0000000000000000000000000000000000000000..baa27d4a8cc676ab0cdbfc80358aa17a80656147 GIT binary patch literal 139251 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 B3kd)K literal 0 HcmV?d00001 diff --git a/packages/runner/src/collect.ts b/packages/runner/src/collect.ts index 2f6803e85..65ecc5d54 100644 --- a/packages/runner/src/collect.ts +++ b/packages/runner/src/collect.ts @@ -16,6 +16,7 @@ import { interpretTaskModes, someTasksAreOnly, } from './utils/collect' +import { createTagsFilter, validateTags } from './utils/tags' const now = globalThis.performance ? globalThis.performance.now.bind(globalThis.performance) : Date.now @@ -27,6 +28,7 @@ export async function collectTests( const config = runner.config const $ = runner.trace! + let defaultTagsFilter: ((testTags: string[]) => boolean) | undefined for (const spec of specs) { const filepath = typeof spec === 'string' ? spec : spec.filepath @@ -37,16 +39,24 @@ export async function collectTests( const testLocations = typeof spec === 'string' ? undefined : spec.testLocations const testNamePattern = typeof spec === 'string' ? undefined : spec.testNamePattern const testIds = typeof spec === 'string' ? undefined : spec.testIds + const testTagsFilter = typeof spec === 'object' && spec.testTagsFilter + ? createTagsFilter(spec.testTagsFilter, config.tags) + : undefined + + const fileTags: string[] = typeof spec === 'string' ? [] : (spec.fileTags || []) const file = createFileTask(filepath, config.root, config.name, runner.pool, runner.viteEnvironment) setFileContext(file, Object.create(null)) + file.tags = fileTags file.shuffle = config.sequence.shuffle - runner.onCollectStart?.(file) + try { + validateTags(runner.config, fileTags) - clearCollectorContext(file, runner) + runner.onCollectStart?.(file) + + clearCollectorContext(file, runner) - try { const setupFiles = toArray(config.setupFiles) if (setupFiles.length) { const setupStart = now() @@ -108,11 +118,15 @@ export async function collectTests( calculateSuiteHash(file) const hasOnlyTasks = someTasksAreOnly(file) + if (!testTagsFilter && !defaultTagsFilter && config.tagsFilter) { + defaultTagsFilter = createTagsFilter(config.tagsFilter, config.tags) + } interpretTaskModes( file, testNamePattern ?? config.testNamePattern, testLocations, testIds, + testTagsFilter ?? defaultTagsFilter, hasOnlyTasks, false, config.allowOnly, diff --git a/packages/runner/src/suite.ts b/packages/runner/src/suite.ts index 574194fe2..0626b8690 100644 --- a/packages/runner/src/suite.ts +++ b/packages/runner/src/suite.ts @@ -9,6 +9,7 @@ import type { SuiteCollector, SuiteFactory, SuiteHooks, + SuiteOptions, Task, TaskCustomOptions, TaskPopulated, @@ -23,6 +24,7 @@ import { isObject, objectAttr, toArray, + unique, } from '@vitest/utils/helpers' import { abortIfTimeout, @@ -38,6 +40,7 @@ import { getHooks, setFn, setHooks, setTestFixture } from './map' import { getCurrentTest } from './test-state' import { findTestFileStackTrace } from './utils' import { createChainable } from './utils/chain' +import { createNoTagsError, validateTags } from './utils/tags' import { createTaskName } from './utils/tasks' /** @@ -213,7 +216,11 @@ export function getRunner(): VitestRunner { function createDefaultSuite(runner: VitestRunner) { const config = runner.config.sequence - const collector = suite('', { concurrent: config.concurrent }, () => {}) + const options: SuiteOptions = {} + if (config.concurrent != null) { + options.concurrent = config.concurrent + } + const collector = suite('', options, () => {}) // no parent suite for top-level tests delete collector.suite return collector @@ -223,12 +230,12 @@ export function clearCollectorContext( file: File, currentRunner: VitestRunner, ): void { + currentTestFilepath = file.filepath + runner = currentRunner if (!defaultSuite) { defaultSuite = createDefaultSuite(currentRunner) } defaultSuite.file = file - runner = currentRunner - currentTestFilepath = file.filepath collectorContext.tasks.length = 0 defaultSuite.clear() collectorContext.currentSuite = defaultSuite @@ -250,6 +257,8 @@ export function createSuiteHooks(): SuiteHooks { } } +const POSITIVE_INFINITY = Number.POSITIVE_INFINITY + function parseArguments any>( optionsOrFn: T | object | undefined, timeoutOrTest: T | number | undefined, @@ -294,7 +303,7 @@ function createSuiteCollector( factory: SuiteFactory = () => {}, mode: RunMode, each?: boolean, - suiteOptions?: TestOptions, + suiteOptions?: SuiteOptions, parentCollectorFixtures?: FixtureItem[], ) { const tasks: (Test | Suite | SuiteCollector)[] = [] @@ -304,8 +313,32 @@ function createSuiteCollector( initSuite(true) const task = function (name = '', options: TaskCustomOptions = {}) { - const timeout = options?.timeout ?? runner.config.testTimeout const currentSuite = collectorContext.currentSuite?.suite + const parentTask = currentSuite ?? collectorContext.currentSuite?.file + const parentTags = parentTask?.tags || [] + const testTags = unique([...parentTags, ...toArray(options.tags)]) + const tagsOptions = testTags + .map((tag) => { + const tagDefinition = runner.config.tags?.find(t => t.name === tag) + if (!tagDefinition && runner.config.strictTags) { + throw createNoTagsError(runner.config.tags, tag) + } + return tagDefinition + }) + .filter(r => r != null) + // higher priority should be last, run 1, 2, 3, ... etc + .sort((tag1, tag2) => (tag2.priority ?? POSITIVE_INFINITY) - (tag1.priority ?? POSITIVE_INFINITY)) + .reduce((acc, tag) => { + const { name, description, priority, ...options } = tag + Object.assign(acc, options) + return acc + }, {} as TestOptions) + + options = { + ...tagsOptions, + ...options, + } + const timeout = options.timeout ?? runner.config.testTimeout const task: Test = { id: '', name, @@ -333,6 +366,7 @@ function createSuiteCollector( meta: options.meta ?? Object.create(null), annotations: [], artifacts: [], + tags: testTags, } const handler = options.handler if (task.mode === 'run' && !handler) { @@ -345,7 +379,6 @@ function createSuiteCollector( task.concurrent = true } task.shuffle = suiteOptions?.shuffle - const context = createTestContext(task, runner) // create test context Object.defineProperty(task, 'context', { @@ -401,10 +434,15 @@ function createSuiteCollector( } // inherit concurrent / sequential from suite - options.concurrent - = this.concurrent || (!this.sequential && options?.concurrent) - options.sequential - = this.sequential || (!this.concurrent && options?.sequential) + const concurrent = this.concurrent ?? (!this.sequential && options?.concurrent) + if (options.concurrent != null && concurrent != null) { + options.concurrent = concurrent + } + + const sequential = this.sequential ?? (!this.concurrent && options?.sequential) + if (options.sequential != null && sequential != null) { + options.sequential = sequential + } const test = task(formatName(name), { ...this, @@ -454,6 +492,9 @@ function createSuiteCollector( } const currentSuite = collectorContext.currentSuite?.suite + const parentTask = currentSuite ?? collectorContext.currentSuite?.file + const suiteTags = toArray(suiteOptions?.tags) + validateTags(runner.config, suiteTags) suite = { id: '', @@ -472,6 +513,7 @@ function createSuiteCollector( tasks: [], meta: Object.create(null), concurrent: suiteOptions?.concurrent, + tags: unique([...parentTask?.tags || [], ...suiteTags]), } if (runner && includeLocation && runner.config.includeTaskLocation) { @@ -541,7 +583,7 @@ function createSuite() { function suiteFn( this: Record, name: string | Function, - factoryOrOptions?: SuiteFactory | TestOptions, + factoryOrOptions?: SuiteFactory | SuiteOptions, optionsOrFactory?: number | SuiteFactory, ) { if (getCurrentTest()) { @@ -550,23 +592,12 @@ function createSuite() { ) } - let mode: RunMode = this.only - ? 'only' - : this.skip - ? 'skip' - : this.todo - ? 'todo' - : 'run' const currentSuite: SuiteCollector | undefined = collectorContext.currentSuite || defaultSuite let { options, handler: factory } = parseArguments( factoryOrOptions, optionsOrFactory, - ) - - if (mode === 'run' && !factory) { - mode = 'todo' - } + ) as { options: SuiteOptions; handler: SuiteFactory | undefined } const isConcurrentSpecified = options.concurrent || this.concurrent || options.sequential === false const isSequentialSpecified = options.sequential || this.sequential || options.concurrent === false @@ -575,14 +606,35 @@ function createSuite() { options = { ...currentSuite?.options, ...options, - shuffle: this.shuffle ?? options.shuffle ?? currentSuite?.options?.shuffle ?? runner?.config.sequence.shuffle, + } + + const shuffle = this.shuffle ?? options.shuffle ?? currentSuite?.options?.shuffle ?? runner?.config.sequence.shuffle + if (shuffle != null) { + options.shuffle = shuffle + } + + let mode: RunMode = (this.only ?? options.only) + ? 'only' + : (this.skip ?? options.skip) + ? 'skip' + : (this.todo ?? options.todo) + ? 'todo' + : 'run' + + // passed as test(name), assume it's a "todo" + if (mode === 'run' && !factory) { + mode = 'todo' } // inherit concurrent / sequential from suite const isConcurrent = isConcurrentSpecified || (options.concurrent && !isSequentialSpecified) const isSequential = isSequentialSpecified || (options.sequential && !isConcurrentSpecified) - options.concurrent = isConcurrent && !isSequential - options.sequential = isSequential && !isConcurrent + if (isConcurrent != null) { + options.concurrent = isConcurrent && !isSequential + } + if (isSequential != null) { + options.sequential = isSequential && !isConcurrent + } return createSuiteCollector( formatName(name), diff --git a/packages/runner/src/types.ts b/packages/runner/src/types.ts index c15b3b2af..659a4efd9 100644 --- a/packages/runner/src/types.ts +++ b/packages/runner/src/types.ts @@ -1,6 +1,7 @@ export type { CancelReason, FileSpecification, + TestTagDefinition, VitestRunner, VitestRunnerConfig, VitestRunnerConstructor, @@ -55,6 +56,7 @@ export type { TestContext, TestFunction, TestOptions, + TestTags, Use, VisualRegressionArtifact, } from './types/tasks' diff --git a/packages/runner/src/types/runner.ts b/packages/runner/src/types/runner.ts index 499ad471a..0d1a1df07 100644 --- a/packages/runner/src/types/runner.ts +++ b/packages/runner/src/types/runner.ts @@ -12,6 +12,8 @@ import type { TestAnnotation, TestArtifact, TestContext, + TestOptions, + TestTags, } from './tasks' /** @@ -40,6 +42,9 @@ export interface VitestRunnerConfig { retry: SerializableRetry includeTaskLocation?: boolean diffOptions?: DiffOptions + tags: TestTagDefinition[] + tagsFilter?: string[] + strictTags: boolean } /** @@ -47,11 +52,34 @@ export interface VitestRunnerConfig { */ export interface FileSpecification { filepath: string + // file can be marked via a jsdoc comment to have tags, + // these are _not_ tags to filter tests by + fileTags?: string[] testLocations: number[] | undefined testNamePattern: RegExp | undefined + testTagsFilter: string[] | undefined testIds: string[] | undefined } +export interface TestTagDefinition extends Omit { + /** + * The name of the tag. This is what you use in the `tags` array in tests. + */ + name: keyof TestTags extends never + ? string + : TestTags[keyof TestTags] + /** + * A description for the tag. This will be shown in the CLI help and UI. + */ + description?: string + /** + * Priority for merging options when multiple tags with the same options are applied to a test. + * + * Lower number means higher priority. E.g., priority 1 takes precedence over priority 3. + */ + priority?: number +} + export type VitestRunnerImportSource = 'collect' | 'setup' export interface VitestRunnerConstructor { diff --git a/packages/runner/src/types/tasks.ts b/packages/runner/src/types/tasks.ts index 779ce7a25..df22a30ad 100644 --- a/packages/runner/src/types/tasks.ts +++ b/packages/runner/src/types/tasks.ts @@ -114,6 +114,10 @@ export interface TaskBase { * @experimental */ dynamic?: boolean + /** + * Custom tags of the task. Useful for filtering tasks. + */ + tags?: string[] } export interface TaskPopulated extends TaskBase { @@ -544,10 +548,6 @@ export interface TestOptions { * Tests inherit `sequential` from `describe()` and nested `describe()` will inherit from parent's `sequential`. */ sequential?: boolean - /** - * Whether the tasks of the suite run in a random order. - */ - shuffle?: boolean /** * Whether the test should be skipped. */ @@ -564,6 +564,21 @@ export interface TestOptions { * Whether the test is expected to fail. If it does, the test will pass, otherwise it will fail. */ fails?: boolean + /** + * Custom tags of the test. Useful for filtering tests. + */ + tags?: keyof TestTags extends never + ? string[] | string + : TestTags[keyof TestTags] | TestTags[keyof TestTags][] +} + +export interface TestTags {} + +export interface SuiteOptions extends TestOptions { + /** + * Whether the tasks of the suite run in a random order. + */ + shuffle?: boolean } interface ExtendedAPI { @@ -647,7 +662,7 @@ interface SuiteCollectorCallable { ): SuiteCollector ( name: string | Function, - options: TestOptions, + options: SuiteOptions, fn?: SuiteFactory ): SuiteCollector } @@ -719,7 +734,7 @@ export interface TaskCustomOptions extends TestOptions { export interface SuiteCollector { readonly name: string readonly mode: RunMode - options?: TestOptions + options?: SuiteOptions type: 'collector' test: TestAPI tasks: ( diff --git a/packages/runner/src/utils/collect.ts b/packages/runner/src/utils/collect.ts index 80b5065eb..4c741ac2f 100644 --- a/packages/runner/src/utils/collect.ts +++ b/packages/runner/src/utils/collect.ts @@ -12,6 +12,7 @@ export function interpretTaskModes( namePattern?: string | RegExp, testLocations?: number[] | undefined, testIds?: string[] | undefined, + testTagsFilter?: ((testTags: string[]) => boolean) | undefined, onlyMode?: boolean, parentIsOnly?: boolean, allowOnly?: boolean, @@ -74,6 +75,9 @@ export function interpretTaskModes( if (testIds && !testIds.includes(t.id)) { t.mode = 'skip' } + if (testTagsFilter && !testTagsFilter(t.tags || [])) { + t.mode = 'skip' + } } else if (t.type === 'suite') { if (t.mode === 'skip') { diff --git a/packages/runner/src/utils/index.ts b/packages/runner/src/utils/index.ts index 81748e5b5..fc3f34794 100644 --- a/packages/runner/src/utils/index.ts +++ b/packages/runner/src/utils/index.ts @@ -10,6 +10,7 @@ export { } from './collect' export { limitConcurrency } from './limit-concurrency' export { partitionSuiteChildren } from './suite' +export { createTagsFilter, validateTags } from './tags' export { createTaskName, getFullName, diff --git a/packages/runner/src/utils/tags.ts b/packages/runner/src/utils/tags.ts new file mode 100644 index 000000000..d7c5b640c --- /dev/null +++ b/packages/runner/src/utils/tags.ts @@ -0,0 +1,277 @@ +import type { TestTagDefinition, VitestRunnerConfig } from '../types/runner' + +export function validateTags(config: VitestRunnerConfig, tags: string[]): void { + if (!config.strictTags) { + return + } + + const availableTags = new Set(config.tags.map(tag => tag.name)) + for (const tag of tags) { + if (!availableTags.has(tag)) { + throw createNoTagsError(config.tags, tag) + } + } +} + +export function createNoTagsError(availableTags: TestTagDefinition[], tag: string, prefix = 'tag'): never { + if (!availableTags.length) { + throw new Error(`The Vitest config does't define any "tags", cannot apply "${tag}" ${prefix} for this test. See: https://vitest.dev/guide/test-tags`) + } + throw new Error(`The ${prefix} "${tag}" is not defined in the configuration. Available tags are:\n${availableTags + .map(t => `- ${t.name}${t.description ? `: ${t.description}` : ''}`) + .join('\n')}`) +} + +export function createTagsFilter(tagsExpr: string[], availableTags: TestTagDefinition[]): (testTags: string[]) => boolean { + const matchers = tagsExpr.map(expr => parseTagsExpression(expr, availableTags)) + return (testTags: string[]) => { + return matchers.every(matcher => matcher(testTags)) + } +} + +type TagMatcher = (tags: string[]) => boolean + +function parseTagsExpression(expr: string, availableTags: TestTagDefinition[]): TagMatcher { + const tokens = tokenize(expr) + const stream = new TokenStream(tokens, expr) + const ast = parseOrExpression(stream, availableTags) + if (stream.peek().type !== 'EOF') { + throw new Error(`Invalid tags expression: unexpected "${formatToken(stream.peek())}" in "${expr}"`) + } + return (tags: string[]) => evaluateNode(ast, tags) +} + +function formatToken(token: Token): string { + switch (token.type) { + case 'TAG': return token.value + default: return formatTokenType(token.type) + } +} + +type Token + = | { type: 'TAG'; value: string } + | { type: 'AND' } + | { type: 'OR' } + | { type: 'NOT' } + | { type: 'LPAREN' } + | { type: 'RPAREN' } + | { type: 'EOF' } + +function tokenize(expr: string): Token[] { + const tokens: Token[] = [] + let i = 0 + + while (i < expr.length) { + if (expr[i] === ' ' || expr[i] === '\t') { + i++ + continue + } + + if (expr[i] === '(') { + tokens.push({ type: 'LPAREN' }) + i++ + continue + } + + if (expr[i] === ')') { + tokens.push({ type: 'RPAREN' }) + i++ + continue + } + + if (expr[i] === '!') { + tokens.push({ type: 'NOT' }) + i++ + continue + } + + if (expr.slice(i, i + 2) === '&&') { + tokens.push({ type: 'AND' }) + i += 2 + continue + } + + if (expr.slice(i, i + 2) === '||') { + tokens.push({ type: 'OR' }) + i += 2 + continue + } + + if (/^and(?:\s|\)|$)/i.test(expr.slice(i))) { + tokens.push({ type: 'AND' }) + i += 3 + continue + } + + if (/^or(?:\s|\)|$)/i.test(expr.slice(i))) { + tokens.push({ type: 'OR' }) + i += 2 + continue + } + + if (/^not\s/i.test(expr.slice(i))) { + tokens.push({ type: 'NOT' }) + i += 3 + continue + } + + let tag = '' + while (i < expr.length && expr[i] !== ' ' && expr[i] !== '\t' && expr[i] !== '(' && expr[i] !== ')' && expr[i] !== '!' && expr[i] !== '&' && expr[i] !== '|') { + const remaining = expr.slice(i) + // Only treat and/or/not as operators if we're at the start of a tag (after whitespace) + // This allows tags like "demand", "editor", "cannot" to work correctly + if (tag === '' && (/^and(?:\s|\)|$)/i.test(remaining) || /^or(?:\s|\)|$)/i.test(remaining) || /^not\s/i.test(remaining))) { + break + } + tag += expr[i] + i++ + } + + if (tag) { + tokens.push({ type: 'TAG', value: tag }) + } + } + + tokens.push({ type: 'EOF' }) + return tokens +} + +type ASTNode + = | { type: 'tag'; value: string; pattern: RegExp | null } + | { type: 'not'; operand: ASTNode } + | { type: 'and'; left: ASTNode; right: ASTNode } + | { type: 'or'; left: ASTNode; right: ASTNode } + +class TokenStream { + private pos = 0 + constructor(private tokens: Token[], public expr: string) {} + + peek(): Token { + return this.tokens[this.pos] + } + + next(): Token { + return this.tokens[this.pos++] + } + + expect(type: Token['type']): Token { + const token = this.next() + if (token.type !== type) { + if (type === 'RPAREN' && token.type === 'EOF') { + throw new Error(`Invalid tags expression: missing closing ")" in "${this.expr}"`) + } + throw new Error(`Invalid tags expression: expected "${formatTokenType(type)}" but got "${formatToken(token)}" in "${this.expr}"`) + } + return token + } + + unexpectedToken(): never { + const token = this.peek() + if (token.type === 'EOF') { + throw new Error(`Invalid tags expression: unexpected end of expression in "${this.expr}"`) + } + throw new Error(`Invalid tags expression: unexpected "${formatToken(token)}" in "${this.expr}"`) + } +} + +function formatTokenType(type: Token['type']): string { + switch (type) { + case 'TAG': return 'tag' + case 'AND': return 'and' + case 'OR': return 'or' + case 'NOT': return 'not' + case 'LPAREN': return '(' + case 'RPAREN': return ')' + case 'EOF': return 'end of expression' + } +} + +function parseOrExpression(stream: TokenStream, availableTags: TestTagDefinition[]): ASTNode { + let left = parseAndExpression(stream, availableTags) + + while (stream.peek().type === 'OR') { + stream.next() + const right = parseAndExpression(stream, availableTags) + left = { type: 'or', left, right } + } + + return left +} + +function parseAndExpression(stream: TokenStream, availableTags: TestTagDefinition[]): ASTNode { + let left = parseUnaryExpression(stream, availableTags) + + while (stream.peek().type === 'AND') { + stream.next() + const right = parseUnaryExpression(stream, availableTags) + left = { type: 'and', left, right } + } + + return left +} + +function parseUnaryExpression(stream: TokenStream, availableTags: TestTagDefinition[]): ASTNode { + if (stream.peek().type === 'NOT') { + stream.next() + const operand = parseUnaryExpression(stream, availableTags) + return { type: 'not', operand } + } + + return parsePrimaryExpression(stream, availableTags) +} + +function parsePrimaryExpression(stream: TokenStream, availableTags: TestTagDefinition[]): ASTNode { + const token = stream.peek() + + if (token.type === 'LPAREN') { + stream.next() + const expr = parseOrExpression(stream, availableTags) + stream.expect('RPAREN') + return expr + } + + if (token.type === 'TAG') { + stream.next() + const tagValue = token.value + const pattern = resolveTagPattern(tagValue, availableTags) + return { type: 'tag', value: tagValue, pattern } + } + + stream.unexpectedToken() +} + +function createWildcardRegex(pattern: string): RegExp { + return new RegExp(`^${pattern.replace(/[.+?^${}()|[\]\\]/g, '\\$&').replace(/\*/g, '.*')}$`) +} + +function resolveTagPattern(tagPattern: string, availableTags: TestTagDefinition[]): RegExp | null { + if (tagPattern.includes('*')) { + const regex = createWildcardRegex(tagPattern) + const hasMatch = availableTags.some(tag => regex.test(tag.name)) + if (!hasMatch) { + throw createNoTagsError(availableTags, tagPattern, 'tag pattern') + } + return regex + } + + if (!availableTags.length || !availableTags.some(tag => tag.name === tagPattern)) { + throw createNoTagsError(availableTags, tagPattern, 'tag pattern') + } + return null +} + +function evaluateNode(node: ASTNode, tags: string[]): boolean { + switch (node.type) { + case 'tag': + if (node.pattern) { + return tags.some(tag => node.pattern!.test(tag)) + } + return tags.includes(node.value) + case 'not': + return !evaluateNode(node.operand, tags) + case 'and': + return evaluateNode(node.left, tags) && evaluateNode(node.right, tags) + case 'or': + return evaluateNode(node.left, tags) || evaluateNode(node.right, tags) + } +} diff --git a/packages/ui/client/components/FileDetails.vue b/packages/ui/client/components/FileDetails.vue index ccfea5aef..13bb1220f 100644 --- a/packages/ui/client/components/FileDetails.vue +++ b/packages/ui/client/components/FileDetails.vue @@ -12,11 +12,12 @@ import { currentLogs, isReport, } from '~/composables/client' +import { tagsDefinitions } from '~/composables/client/state' import { explorerTree } from '~/composables/explorer' import { hasFailedSnapshot } from '~/composables/explorer/collector' import { getModuleGraph } from '~/composables/module-graph' import { selectedTest, viewMode } from '~/composables/params' -import { getProjectNameColor, getProjectTextColor } from '~/utils/task' +import { getBadgeNameColor, getBadgeTextColor } from '~/utils/task' import IconButton from './IconButton.vue' import StatusIcon from './StatusIcon.vue' import ViewConsoleOutput from './views/ViewConsoleOutput.vue' @@ -155,10 +156,10 @@ debouncedWatch( const projectNameColor = computed(() => { const projectName = current.value?.file.projectName || '' - return explorerTree.colors.get(projectName) || getProjectNameColor(current.value?.file.projectName) + return explorerTree.colors.get(projectName) || getBadgeNameColor(current.value?.file.projectName) }) -const projectNameTextColor = computed(() => getProjectTextColor(projectNameColor.value)) +const projectNameTextColor = computed(() => getBadgeTextColor(projectNameColor.value)) const testTitle = computed(() => { const testId = selectedTest.value @@ -170,11 +171,24 @@ const testTitle = computed(() => { while (node) { names.push(node.name) node = node.suite - ? node.suite - : (node === node.file ? undefined : node.file) } return names.reverse().join(' > ') }) + +const tags = computed(() => { + const testId = selectedTest.value + if (!testId) { + return [] + } + const node = client.state.idMap.get(testId) + return (node?.tags || []).map(tag => ({ + name: tag, + description: tagsDefinitions.value[tag]?.description, + bg: getBadgeNameColor(tag, true), + border: getBadgeNameColor(tag), + text: 'white', + })) +})