{test &&
{test.path.join(' › ')}
}
{test &&
{test?.title}
}
{test &&
{test.location.file}:{test.location.line}
}
{test && !!test.projectName &&
}
- {test && !!test.annotations.length &&
- {test.annotations.map(annotation => )}
+ {annotations.size &&
+ {[...annotations].map(annotation => )}
}
{test && ({
@@ -57,11 +64,17 @@ function renderAnnotationDescription(description: string) {
return description;
}
-function TestCaseAnnotationView({ annotation: { type, description } }: { annotation: TestCaseAnnotation }) {
+function TestCaseAnnotationView({ type, descriptions }: { type: string, descriptions: (string | undefined)[] }) {
+ const filteredDescriptions = descriptions.filter(Boolean) as string[];
return (
{type}
- {description && : {renderAnnotationDescription(description)}}
+ {!!filteredDescriptions.length && : {filteredDescriptions.map((d, i) => {
+ const rendered = renderAnnotationDescription(d);
+ if (i < filteredDescriptions.length - 1)
+ return <>{rendered}, >;
+ return rendered;
+ })}}
);
}
diff --git a/tests/playwright-test/reporter-html.spec.ts b/tests/playwright-test/reporter-html.spec.ts
index 0dc1dfc004..755c5f9ab1 100644
--- a/tests/playwright-test/reporter-html.spec.ts
+++ b/tests/playwright-test/reporter-html.spec.ts
@@ -565,6 +565,11 @@ test('should render annotations', async ({ runInlineTest, page, showReport }) =>
'a.test.js': `
import { test, expect } from '@playwright/test';
test('skipped test', async ({ page }) => {
+ test.info().annotations.push({ type: 'issue', description: '#123'});
+ test.info().annotations.push({ type: 'issue', description: '#456'});
+ test.info().annotations.push({ type: 'issue', description: 'https://playwright.dev'});
+ test.info().annotations.push({ type: 'issue' });
+ test.info().annotations.push({ type: 'empty' });
test.skip(true, 'I am not interested in this test');
});
`,
@@ -574,7 +579,11 @@ test('should render annotations', async ({ runInlineTest, page, showReport }) =>
await showReport();
await page.click('text=skipped test');
- await expect(page.locator('.test-case-annotation')).toHaveText('skip: I am not interested in this test');
+ await expect(page.locator('.test-case-annotation')).toHaveText([
+ 'issue: #123, #456, https://playwright.dev',
+ 'empty',
+ 'skip: I am not interested in this test',
+ ]);
});
test('should render annotations as link if needed', async ({ runInlineTest, page, showReport, server }) => {