From 165ecac5df9bf4472b3c37d5b3b6e4093b7d1f2b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=98=A4=EC=86=8C=ED=98=84?= <53892427+osohyun0224@users.noreply.github.com> Date: Wed, 22 May 2024 04:46:38 +0900 Subject: [PATCH] feat(test): add `URL` field to annotations for hyperlink display (#30665) --- docs/src/test-api/class-test.md | 18 ++++++++++++++++-- .../html-reporter/src/testCaseView.spec.tsx | 4 ++-- packages/html-reporter/src/types.ts | 2 +- packages/playwright/src/common/config.ts | 2 +- packages/playwright/types/test.d.ts | 6 ++++-- 5 files changed, 24 insertions(+), 8 deletions(-) diff --git a/docs/src/test-api/class-test.md b/docs/src/test-api/class-test.md index 9b56fbf2e6..7b03353361 100644 --- a/docs/src/test-api/class-test.md +++ b/docs/src/test-api/class-test.md @@ -71,7 +71,8 @@ import { test, expect } from '@playwright/test'; test('basic test', { annotation: { type: 'issue', - description: 'https://github.com/microsoft/playwright/issues/23180', + description: 'feature tags API', + url: 'https://github.com/microsoft/playwright/issues/23180' }, }, async ({ page }) => { await page.goto('https://playwright.dev/'); @@ -97,7 +98,8 @@ Test title. - `tag` ?<[string]|[Array]<[string]>> - `annotation` ?<[Object]|[Array]<[Object]>> - `type` <[string]> Annotation type, for example `'issue'`. - - `description` ?<[string]> Optional annotation description, for example an issue url. + - `description` ?<[string]> Optional annotation description. + - `url` ?<[string]> Optional for example an issue url. Additional test details. @@ -440,6 +442,7 @@ Group title. - `annotation` ?<[Object]|[Array]<[Object]>> - `type` <[string]> - `description` ?<[string]> + - `url` ?<[string]> Additional details for all tests in the group. @@ -568,6 +571,7 @@ Group title. - `annotation` ?<[Object]|[Array]<[Object]>> - `type` <[string]> - `description` ?<[string]> + - `url` ?<[string]> See [`method: Test.describe`] for details description. @@ -623,6 +627,7 @@ Group title. - `annotation` ?<[Object]|[Array]<[Object]>> - `type` <[string]> - `description` ?<[string]> + - `url` ?<[string]> See [`method: Test.describe`] for details description. @@ -676,6 +681,7 @@ Group title. - `annotation` ?<[Object]|[Array]<[Object]>> - `type` <[string]> - `description` ?<[string]> + - `url` ?<[string]> See [`method: Test.describe`] for details description. @@ -727,6 +733,7 @@ Group title. - `annotation` ?<[Object]|[Array]<[Object]>> - `type` <[string]> - `description` ?<[string]> + - `url` ?<[string]> See [`method: Test.describe`] for details description. @@ -782,6 +789,7 @@ Group title. - `annotation` ?<[Object]|[Array]<[Object]>> - `type` <[string]> - `description` ?<[string]> + - `url` ?<[string]> See [`method: Test.describe`] for details description. @@ -839,6 +847,7 @@ Group title. - `annotation` ?<[Object]|[Array]<[Object]>> - `type` <[string]> - `description` ?<[string]> + - `url` ?<[string]> See [`method: Test.describe`] for details description. @@ -891,6 +900,7 @@ Group title. - `annotation` ?<[Object]|[Array]<[Object]>> - `type` <[string]> - `description` ?<[string]> + - `url` ?<[string]> See [`method: Test.describe`] for details description. @@ -1109,6 +1119,7 @@ Test title. - `annotation` ?<[Object]|[Array]<[Object]>> - `type` <[string]> - `description` ?<[string]> + - `url` ?<[string]> See [`method: Test.(call)`] for test details description. @@ -1214,6 +1225,7 @@ Test title. - `annotation` ?<[Object]|[Array]<[Object]>> - `type` <[string]> - `description` ?<[string]> + - `url` ?<[string]> See [`method: Test.(call)`] for test details description. @@ -1291,6 +1303,7 @@ Test title. - `annotation` ?<[Object]|[Array]<[Object]>> - `type` <[string]> - `description` ?<[string]> + - `url` ?<[string]> See [`method: Test.(call)`] for test details description. @@ -1436,6 +1449,7 @@ Test title. - `annotation` ?<[Object]|[Array]<[Object]>> - `type` <[string]> - `description` ?<[string]> + - `url` ?<[string]> See [`method: Test.(call)`] for test details description. diff --git a/packages/html-reporter/src/testCaseView.spec.tsx b/packages/html-reporter/src/testCaseView.spec.tsx index 28fe8247f5..0a4da91b6e 100644 --- a/packages/html-reporter/src/testCaseView.spec.tsx +++ b/packages/html-reporter/src/testCaseView.spec.tsx @@ -52,8 +52,8 @@ const testCase: TestCase = { projectName: 'chromium', location: { file: 'test.spec.ts', line: 42, column: 0 }, annotations: [ - { type: 'annotation', description: 'Annotation text' }, - { type: 'annotation', description: 'Another annotation text' }, + { type: 'annotation', description: 'Annotation text', url: 'example url' }, + { type: 'annotation', description: 'Another annotation text', url: 'Another example url' }, ], tags: [], outcome: 'expected', diff --git a/packages/html-reporter/src/types.ts b/packages/html-reporter/src/types.ts index 733e88e8b9..79dc2f3812 100644 --- a/packages/html-reporter/src/types.ts +++ b/packages/html-reporter/src/types.ts @@ -59,7 +59,7 @@ export type TestFileSummary = { stats: Stats; }; -export type TestCaseAnnotation = { type: string, description?: string }; +export type TestCaseAnnotation = { type: string, description?: string, url?: string}; export type TestCaseSummary = { testId: string, diff --git a/packages/playwright/src/common/config.ts b/packages/playwright/src/common/config.ts index 42dd554b38..3af70211bc 100644 --- a/packages/playwright/src/common/config.ts +++ b/packages/playwright/src/common/config.ts @@ -35,7 +35,7 @@ export type FixturesWithLocation = { fixtures: Fixtures; location: Location; }; -export type Annotation = { type: string, description?: string }; +export type Annotation = { type: string, description?: string, url?: string }; export const defaultTimeout = 30000; diff --git a/packages/playwright/types/test.d.ts b/packages/playwright/types/test.d.ts index 9e050e2901..444f135a89 100644 --- a/packages/playwright/types/test.d.ts +++ b/packages/playwright/types/test.d.ts @@ -2156,7 +2156,8 @@ interface TestFunction { * test('basic test', { * annotation: { * type: 'issue', - * description: 'https://github.com/microsoft/playwright/issues/23180', + * description: 'feature tags API', + * url: 'https://github.com/microsoft/playwright/issues/23180' * }, * }, async ({ page }) => { * await page.goto('https://playwright.dev/'); @@ -2232,7 +2233,8 @@ interface TestFunction { * test('basic test', { * annotation: { * type: 'issue', - * description: 'https://github.com/microsoft/playwright/issues/23180', + * description: 'feature tags API', + * url: 'https://github.com/microsoft/playwright/issues/23180' * }, * }, async ({ page }) => { * await page.goto('https://playwright.dev/');