@test2doc/playwright 0.11.1 → 0.12.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -427,3 +427,51 @@ export default defineConfig({
427
427
  ...
428
428
  })
429
429
  ```
430
+
431
+
432
+ #### Highlight multiple elements
433
+ In the event that you need to highlight multiple elements, you can pass in an array with `MultiLocatorScreenshot` objects.
434
+
435
+ The `MultiLocatorScreenshot` has 2 keys, `target`, a Playwright Locator, and options, which is a combination of `PageScreenshotOptions` and Annotation options.
436
+
437
+ **Note:** Only the first item in the array will be attempted to scroll into view.
438
+
439
+ ```ts
440
+ test.describe(withDocMeta("describe block"), async () => {
441
+ test("test block", async ({ page }, testInfo) => {
442
+ ...
443
+ test.step("step block", async () => {
444
+ await page.goto("http://localhost:5173/")
445
+
446
+ await screenshot(
447
+ testInfo,
448
+ [
449
+ {
450
+ target: page.getByRole(
451
+ "header", { name: "Page Title" }
452
+ ),
453
+ },
454
+ {
455
+ target: page.getByRole(
456
+ "aside", { name: "Sidebar" }
457
+ ),
458
+ options: {
459
+ annotation: {
460
+ text: "Sidebar Element",
461
+ position: "left",
462
+ showArrow: true,
463
+ arrowStrokeStyle: "red",
464
+ },
465
+ },
466
+ },
467
+ ],
468
+ {
469
+ // Values applied to all annotations
470
+ annotation: {
471
+ font: "14px 'Times New Roman', Times, serif"
472
+ },
473
+ },
474
+ )
475
+ })
476
+ })
477
+ ```
@@ -20,6 +20,10 @@ export interface AnnotationOptions {
20
20
  interface ScreenshotOptions extends PageScreenshotOptions {
21
21
  annotation?: AnnotationOptions;
22
22
  }
23
- export declare const screenshot: (testInfo: TestInfo, target: Page | Locator, { annotation: overrideAnnotations, ...options }?: ScreenshotOptions) => Promise<void>;
23
+ interface MultiLocatorScreenshot {
24
+ target: Locator;
25
+ options?: ScreenshotOptions;
26
+ }
27
+ export declare const screenshot: (testInfo: TestInfo, target: Page | Locator | MultiLocatorScreenshot[], { annotation: overrideAnnotations, ...options }?: ScreenshotOptions) => Promise<void>;
24
28
  export {};
25
29
  //# sourceMappingURL=screenshots.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"screenshots.d.ts","sourceRoot":"","sources":["../src/screenshots.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,OAAO,EACP,IAAI,EACJ,qBAAqB,EACrB,QAAQ,EACT,MAAM,kBAAkB,CAAA;AAIzB,KAAK,QAAQ,GAAG,OAAO,GAAG,OAAO,GAAG,MAAM,GAAG,OAAO,CAAA;AAEpD,MAAM,WAAW,iBAAiB;IAChC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAC7B,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,EAAE,QAAQ,CAAA;IACnB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB;AAED,UAAU,iBAAkB,SAAQ,qBAAqB;IACvD,UAAU,CAAC,EAAE,iBAAiB,CAAA;CAC/B;AAED,eAAO,MAAM,UAAU,GACrB,UAAU,QAAQ,EAClB,QAAQ,IAAI,GAAG,OAAO,EACtB,kDAAiD,iBAAsB,kBAuPxE,CAAA"}
1
+ {"version":3,"file":"screenshots.d.ts","sourceRoot":"","sources":["../src/screenshots.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,OAAO,EACP,IAAI,EACJ,qBAAqB,EACrB,QAAQ,EACT,MAAM,kBAAkB,CAAA;AAIzB,KAAK,QAAQ,GAAG,OAAO,GAAG,OAAO,GAAG,MAAM,GAAG,OAAO,CAAA;AAEpD,MAAM,WAAW,iBAAiB;IAChC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAC7B,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,EAAE,QAAQ,CAAA;IACnB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB;AAED,UAAU,iBAAkB,SAAQ,qBAAqB;IACvD,UAAU,CAAC,EAAE,iBAAiB,CAAA;CAC/B;AAED,UAAU,sBAAsB;IAC9B,MAAM,EAAE,OAAO,CAAA;IACf,OAAO,CAAC,EAAE,iBAAiB,CAAA;CAC5B;AAED,eAAO,MAAM,UAAU,GACrB,UAAU,QAAQ,EAClB,QAAQ,IAAI,GAAG,OAAO,GAAG,sBAAsB,EAAE,EACjD,kDAAiD,iBAAsB,kBAsBxE,CAAA"}
@@ -5,16 +5,30 @@ export const screenshot = async (testInfo, target, { annotation: overrideAnnotat
5
5
  ...overrideAnnotations,
6
6
  };
7
7
  const filename = `test2doc-${Date.now()}-${++screenshotCounter}.png`;
8
- let screenshot;
9
- if ("highlight" in target) {
10
- const page = target.page();
11
- await target.scrollIntoViewIfNeeded();
12
- const boundingBox = await target.boundingBox();
13
- if (boundingBox) {
14
- await page.evaluate(({ boundingBox: box, annotation }) => {
15
- const canvas = document.createElement("canvas");
16
- canvas.id = "test2doc-highlight-canvas";
17
- canvas.style.cssText = `
8
+ const screenshotBuffer = "highlight" in target || Array.isArray(target)
9
+ ? await generateScreenshotBuffer(Array.isArray(target) ? target : [{ target }], options, annotation)
10
+ : await target.screenshot(options);
11
+ await testInfo.attach(filename, {
12
+ body: screenshotBuffer,
13
+ contentType: "image/png",
14
+ });
15
+ };
16
+ async function generateScreenshotBuffer(targets, options, annotation) {
17
+ const firstTarget = targets.at(0)?.target;
18
+ if (!firstTarget)
19
+ throw new Error("No targets provided for screenshot");
20
+ const page = firstTarget.page();
21
+ await firstTarget.scrollIntoViewIfNeeded();
22
+ const boundingBoxes = await Promise.all(targets.map(({ target }) => target.boundingBox()));
23
+ const annotations = targets.map(({ options }) => ({
24
+ ...annotation,
25
+ ...options?.annotation,
26
+ }));
27
+ if (boundingBoxes) {
28
+ await page.evaluate(({ boundingBoxes: boxes, annotations }) => {
29
+ const canvas = document.createElement("canvas");
30
+ canvas.id = "test2doc-highlight-canvas";
31
+ canvas.style.cssText = `
18
32
  position: fixed !important;
19
33
  top: 0 !important;
20
34
  left: 0 !important;
@@ -26,10 +40,14 @@ export const screenshot = async (testInfo, target, { annotation: overrideAnnotat
26
40
  visibility: visible !important;
27
41
  opacity: 1 !important;
28
42
  `;
29
- canvas.width = window.innerWidth;
30
- canvas.height = window.innerHeight;
31
- const ctx = canvas.getContext("2d");
32
- if (ctx) {
43
+ canvas.width = window.innerWidth;
44
+ canvas.height = window.innerHeight;
45
+ const ctx = canvas.getContext("2d");
46
+ if (ctx) {
47
+ for (const [index, box] of boxes.entries()) {
48
+ if (!box)
49
+ continue;
50
+ const annotation = annotations[index];
33
51
  // Draw highlight rectangle
34
52
  ctx.strokeStyle =
35
53
  annotation?.highlightStrokeStyle ?? "rgba(255, 165, 0, 1)";
@@ -167,27 +185,18 @@ export const screenshot = async (testInfo, target, { annotation: overrideAnnotat
167
185
  ctx.fillText(annotation.text, labelPosition.x, labelPosition.y);
168
186
  }
169
187
  }
170
- document.body.appendChild(canvas);
171
- }, { boundingBox, annotation });
172
- screenshot = await page.screenshot(options);
173
- // Clean up canvas
174
- await page.evaluate(() => {
175
- const canvas = document.getElementById("test2doc-highlight-canvas");
176
- if (canvas)
177
- canvas.remove();
178
- });
179
- }
180
- else {
181
- screenshot = await page.screenshot(options);
182
- }
183
- }
184
- else {
185
- // Target is already a page
186
- screenshot = await target.screenshot(options);
188
+ }
189
+ document.body.appendChild(canvas);
190
+ }, { boundingBoxes, annotations });
191
+ const screenshotBuffer = await page.screenshot(options);
192
+ // Clean up canvas
193
+ await page.evaluate(() => {
194
+ const canvas = document.getElementById("test2doc-highlight-canvas");
195
+ if (canvas)
196
+ canvas.remove();
197
+ });
198
+ return screenshotBuffer;
187
199
  }
188
- await testInfo.attach(filename, {
189
- body: screenshot,
190
- contentType: "image/png",
191
- });
192
- };
200
+ return await page.screenshot(options);
201
+ }
193
202
  //# sourceMappingURL=screenshots.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"screenshots.js","sourceRoot":"","sources":["../src/screenshots.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"screenshots.js","sourceRoot":"","sources":["../src/screenshots.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@test2doc/playwright",
3
- "version": "0.11.1",
3
+ "version": "0.12.1",
4
4
  "description": "A reporter that generates docs based off playwright test files",
5
5
  "keywords": [
6
6
  "documentation",
@@ -66,18 +66,22 @@
66
66
  "devDependencies": {
67
67
  "@playwright/test": "^1.55.0",
68
68
  "@types/node": "^24.5.0",
69
+ "@types/pngjs": "^6.0.5",
70
+ "pixelmatch": "^7.1.0",
71
+ "pngjs": "^7.0.0",
69
72
  "typescript": "^5.9.2",
70
73
  "vitest": "^3.2.4"
71
74
  },
72
75
  "scripts": {
73
- "clean": "rm -rf dist && rm -rf tsconfig.tsbuildinfo",
74
76
  "build": "tsc --project tsconfig.json",
75
77
  "build:watch": "tsc --project tsconfig.json --watch",
76
- "test": "vitest run && pnpm int && pnpm int:a",
77
- "unit": "vitest",
78
+ "clean": "rm -rf dist && rm -rf tsconfig.tsbuildinfo",
79
+ "format": "biome format --write .",
78
80
  "int": "playwright test",
79
81
  "int:a": "playwright test --config=playwright-annotation.config.ts",
80
82
  "lint": "biome lint .",
81
- "format": "biome format --write ."
83
+ "postinstall": "pnpm playwright install",
84
+ "test": "vitest run && pnpm int && pnpm int:a",
85
+ "unit": "vitest"
82
86
  }
83
87
  }