@demon-utils/playwright 0.1.6 → 0.1.7

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.
@@ -0,0 +1,56 @@
1
+ #!/usr/bin/env bun
2
+ // @bun
3
+
4
+ // src/bin/demon-demo-init.ts
5
+ import { existsSync, writeFileSync } from "fs";
6
+ import { resolve, join, dirname } from "path";
7
+ var DEMO_CONFIG_FILENAME = "playwright.demo.config.ts";
8
+ var EXAMPLE_DEMO_TEMPLATE = `import { test } from "@playwright/test";
9
+ import { DemoRecorder } from "@demon-utils/playwright";
10
+ // You can also import hideCommentary to manually hide tooltips:
11
+ // import { hideCommentary } from "@demon-utils/playwright";
12
+
13
+ test("example demo", async ({ page }, testInfo) => {
14
+ const demo = new DemoRecorder({ testStep: test.step });
15
+
16
+ // Navigate to the starting page
17
+ await demo.step(page, "Navigate to the application", { selector: "body" });
18
+ await page.goto("/");
19
+ await page.waitForTimeout(1000);
20
+
21
+ // Demonstrate an interaction
22
+ await demo.step(page, "Click a button or link", { selector: "body" });
23
+ // await page.click("#my-button");
24
+ await page.waitForTimeout(1000);
25
+
26
+ // Save the demo steps metadata
27
+ await demo.save(testInfo.outputDir);
28
+ });
29
+ `;
30
+ function findConfigDir(startDir) {
31
+ let current = resolve(startDir);
32
+ const root = resolve("/");
33
+ while (current !== root) {
34
+ const configPath = join(current, DEMO_CONFIG_FILENAME);
35
+ if (existsSync(configPath)) {
36
+ return current;
37
+ }
38
+ const parent = dirname(current);
39
+ if (parent === current)
40
+ break;
41
+ current = parent;
42
+ }
43
+ return null;
44
+ }
45
+ var startPath = process.argv[2] ?? process.cwd();
46
+ var resolved = resolve(startPath);
47
+ var configDir = findConfigDir(resolved);
48
+ if (!configDir) {
49
+ console.error(`Error: Could not find ${DEMO_CONFIG_FILENAME} in any parent directory of "${resolved}".`);
50
+ process.exit(1);
51
+ }
52
+ var examplePath = join(configDir, "example.demo.ts");
53
+ writeFileSync(examplePath, EXAMPLE_DEMO_TEMPLATE);
54
+ console.log(examplePath);
55
+
56
+ //# debugId=86C8DC1FEE60FB9D64756E2164756E21
@@ -0,0 +1,10 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/bin/demon-demo-init.ts"],
4
+ "sourcesContent": [
5
+ "#!/usr/bin/env bun\nimport { existsSync, writeFileSync } from \"node:fs\";\nimport { resolve, join, dirname } from \"node:path\";\n\nconst DEMO_CONFIG_FILENAME = \"playwright.demo.config.ts\";\n\nconst EXAMPLE_DEMO_TEMPLATE = `import { test } from \"@playwright/test\";\nimport { DemoRecorder } from \"@demon-utils/playwright\";\n// You can also import hideCommentary to manually hide tooltips:\n// import { hideCommentary } from \"@demon-utils/playwright\";\n\ntest(\"example demo\", async ({ page }, testInfo) => {\n const demo = new DemoRecorder({ testStep: test.step });\n\n // Navigate to the starting page\n await demo.step(page, \"Navigate to the application\", { selector: \"body\" });\n await page.goto(\"/\");\n await page.waitForTimeout(1000);\n\n // Demonstrate an interaction\n await demo.step(page, \"Click a button or link\", { selector: \"body\" });\n // await page.click(\"#my-button\");\n await page.waitForTimeout(1000);\n\n // Save the demo steps metadata\n await demo.save(testInfo.outputDir);\n});\n`;\n\nfunction findConfigDir(startDir: string): string | null {\n let current = resolve(startDir);\n const root = resolve(\"/\");\n\n while (current !== root) {\n const configPath = join(current, DEMO_CONFIG_FILENAME);\n if (existsSync(configPath)) {\n return current;\n }\n const parent = dirname(current);\n if (parent === current) break;\n current = parent;\n }\n\n return null;\n}\n\nconst startPath = process.argv[2] ?? process.cwd();\nconst resolved = resolve(startPath);\n\nconst configDir = findConfigDir(resolved);\n\nif (!configDir) {\n console.error(`Error: Could not find ${DEMO_CONFIG_FILENAME} in any parent directory of \"${resolved}\".`);\n process.exit(1);\n}\n\nconst examplePath = join(configDir, \"example.demo.ts\");\nwriteFileSync(examplePath, EXAMPLE_DEMO_TEMPLATE);\nconsole.log(examplePath);\n"
6
+ ],
7
+ "mappings": ";;;;AACA;AACA;AAEA,IAAM,uBAAuB;AAE7B,IAAM,wBAAwB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAuB9B,SAAS,aAAa,CAAC,UAAiC;AAAA,EACtD,IAAI,UAAU,QAAQ,QAAQ;AAAA,EAC9B,MAAM,OAAO,QAAQ,GAAG;AAAA,EAExB,OAAO,YAAY,MAAM;AAAA,IACvB,MAAM,aAAa,KAAK,SAAS,oBAAoB;AAAA,IACrD,IAAI,WAAW,UAAU,GAAG;AAAA,MAC1B,OAAO;AAAA,IACT;AAAA,IACA,MAAM,SAAS,QAAQ,OAAO;AAAA,IAC9B,IAAI,WAAW;AAAA,MAAS;AAAA,IACxB,UAAU;AAAA,EACZ;AAAA,EAEA,OAAO;AAAA;AAGT,IAAM,YAAY,QAAQ,KAAK,MAAM,QAAQ,IAAI;AACjD,IAAM,WAAW,QAAQ,SAAS;AAElC,IAAM,YAAY,cAAc,QAAQ;AAExC,IAAI,CAAC,WAAW;AAAA,EACd,QAAQ,MAAM,yBAAyB,oDAAoD,YAAY;AAAA,EACvG,QAAQ,KAAK,CAAC;AAChB;AAEA,IAAM,cAAc,KAAK,WAAW,iBAAiB;AACrD,cAAc,aAAa,qBAAqB;AAChD,QAAQ,IAAI,WAAW;",
8
+ "debugId": "86C8DC1FEE60FB9D64756E2164756E21",
9
+ "names": []
10
+ }