@assertrx/dino 1.0.2 → 1.0.4
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/package.json +1 -1
- package/prompts/generate-bdd-from-url.md +24 -2
- package/prompts/generate-pom-from-url-cli.md +9 -10
- package/prompts/generate-pom-from-url.md +9 -9
- package/scripts/.playwright-mcp/console-2026-08-27T18-21-56-124Z.log +2 -0
- package/scripts/.playwright-mcp/page-2026-08-27T18-21-56-619Z.yml +52 -0
- package/scripts/.playwright-mcp/page-2026-08-27T18-22-09-918Z.yml +468 -0
- package/scripts/.playwright-mcp/page-2026-08-27T18-22-18-028Z.yml +867 -0
- package/scripts/.playwright-mcp/page-2026-08-27T18-22-26-737Z.yml +34 -0
- package/scripts/.playwright-mcp/page-2026-08-27T18-22-45-030Z.yml +52 -0
- package/scripts/.playwright-mcp/page-2026-08-27T18-22-50-830Z.yml +203 -0
- package/scripts/api-server.mjs +29 -0
- package/scripts/setup-dino-api.bat +8 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
description: Generate exhaustive Gherkin BDD scenarios for a single page using the bdd-gherkin skill
|
|
3
|
-
argument-hint: "<URL> [output-dir]"
|
|
3
|
+
argument-hint: "<URL> [output-dir] [auth-env-file]"
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
Use the `bdd-gherkin` skill and `playwright-cli` commands to inspect the page at $1 and generate exhaustive Gherkin BDD scenarios for **that page only**. Fall back to the Playwright MCP bridge (`browser_*` tools) only if `playwright-cli` is unavailable or fails.
|
|
@@ -20,7 +20,7 @@ Use the `bdd-gherkin` skill and `playwright-cli` commands to inspect the page at
|
|
|
20
20
|
- Run `playwright-cli open $1` to load the page.
|
|
21
21
|
- Run `playwright-cli snapshot` to capture the accessibility tree, visible fields, buttons, links, tables, and any validation/error messages.
|
|
22
22
|
- If `playwright-cli` cannot be resolved or its commands fail, fall back to the Playwright MCP bridge: use `browser_navigate` to load $1 and `browser_snapshot` to inspect it.
|
|
23
|
-
- If the page requires authentication and an env file
|
|
23
|
+
- If the page requires authentication and an auth env file was provided (`$3`), follow the secure login flow from the `playwright-cli` skill to log in before snapshotting.
|
|
24
24
|
- Identify the primary actor(s), the business capability the page supports, and every interactive element or workflow step on the page.
|
|
25
25
|
- Do **not** navigate away from the page; generate scenarios for the page pointed to by $1 only.
|
|
26
26
|
|
|
@@ -58,8 +58,30 @@ Use the `bdd-gherkin` skill and `playwright-cli` commands to inspect the page at
|
|
|
58
58
|
- Use a clear, kebab-case file name derived from the page (e.g., `transfer-money-page.feature`, `login-page.feature`).
|
|
59
59
|
- If the page supports multiple distinct capabilities, split into multiple feature files in the output directory.
|
|
60
60
|
|
|
61
|
+
## Authentication
|
|
62
|
+
|
|
63
|
+
If the site requires login, handle credentials securely:
|
|
64
|
+
|
|
65
|
+
1. **Preferred: provide an auth env file** as the third argument (`$3`).
|
|
66
|
+
- The env file should contain variables such as:
|
|
67
|
+
```bash
|
|
68
|
+
BDD_AUTH_URL=https://example.com/login
|
|
69
|
+
BDD_USERNAME=user@example.com
|
|
70
|
+
BDD_PASSWORD=secret
|
|
71
|
+
```
|
|
72
|
+
- Load the file in a single bash command, use the values immediately to log in via `playwright-cli` (e.g., `open` the login page, then `fill` the credentials), and **do not echo, log, or persist the values anywhere**.
|
|
73
|
+
- Do not include the env file or its values in generated `.feature` files, snapshots, or test code.
|
|
74
|
+
- Mark the env file in `.gitignore` and delete it when the session is complete.
|
|
75
|
+
|
|
76
|
+
2. **Fallback: manual login**.
|
|
77
|
+
- If no env file is provided, open the login page with `playwright-cli open` and ask the user to complete login manually in the browser session.
|
|
78
|
+
- Then continue generating scenarios from the authenticated state.
|
|
79
|
+
|
|
80
|
+
3. **Never** ask the user to paste credentials into the chat, and **never** hardcode credentials into generated files.
|
|
81
|
+
|
|
61
82
|
## Output
|
|
62
83
|
|
|
63
84
|
- The saved `.feature` file path(s).
|
|
64
85
|
- A brief summary of the scenario categories covered (happy path, validation, edge cases, errors, etc.).
|
|
65
86
|
- Any clarifying assumptions made about business rules or user roles.
|
|
87
|
+
- How authentication was handled (env file or manual).
|
|
@@ -1,23 +1,22 @@
|
|
|
1
1
|
---
|
|
2
|
-
description: Generate Playwright Page Object
|
|
2
|
+
description: Generate a Playwright Page Object Model for a single live URL using playwright-cli
|
|
3
3
|
argument-hint: "<URL> [output-dir] [auth-env-file]"
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
Use the `playwright-pom` skill and `playwright-cli` commands to generate Page Object
|
|
6
|
+
Use the `playwright-pom` skill and `playwright-cli` commands to generate a Page Object Model for the single page at $1.
|
|
7
7
|
|
|
8
8
|
Scope and rules:
|
|
9
|
-
-
|
|
9
|
+
- Only generate a POM for the exact page at $1 — do not navigate to or explore any other pages.
|
|
10
10
|
- Use `playwright-cli open <url>` to launch the browser. If `playwright-cli` is not on PATH, use `npx -p @playwright/cli playwright-cli open <url>` instead.
|
|
11
|
-
- Use `playwright-cli snapshot` to capture the accessibility tree and element refs for
|
|
12
|
-
-
|
|
13
|
-
- Generate one focused page object per unique page or reusable component.
|
|
11
|
+
- Use `playwright-cli snapshot` to capture the accessibility tree and element refs for the page. Do not use `goto` or `click` to navigate to additional pages.
|
|
12
|
+
- Generate one page object for this page (plus small reusable component objects only if the page clearly contains distinct, reusable UI components).
|
|
14
13
|
- Use resilient locators: `getByRole`, `getByLabel`, `getByTestId`, `getByPlaceholder`, `getByText` (in that order). Use CSS/XPath only as a last resort.
|
|
15
14
|
- Each page object should expose high-level business methods (e.g., `loginAs(user)`, `searchFor(term)`) built from the low-level locators.
|
|
16
15
|
- Keep selectors and URLs inside the page object; tests should read like user workflows.
|
|
17
16
|
- Save generated files under `${2:-tests/pom/}` with clear, kebab-case names (e.g., `login-page.ts`).
|
|
18
17
|
- Only target applications you own or have explicit authorization to test.
|
|
19
18
|
- Do not interact with destructive actions (delete, remove, sign out) unless explicitly requested.
|
|
20
|
-
-
|
|
19
|
+
- Report what was covered once the page object is complete.
|
|
21
20
|
|
|
22
21
|
## Authentication
|
|
23
22
|
|
|
@@ -42,7 +41,7 @@ If the site requires login, handle credentials securely:
|
|
|
42
41
|
3. **Never** ask the user to paste credentials into the chat, and **never** hardcode credentials into generated files.
|
|
43
42
|
|
|
44
43
|
After generating, summarize:
|
|
45
|
-
- The
|
|
46
|
-
- The output file
|
|
47
|
-
- Any
|
|
44
|
+
- The page (and any components) covered
|
|
45
|
+
- The output file path(s)
|
|
46
|
+
- Any parts of the page that could not be inspected and why
|
|
48
47
|
- How authentication was handled (env file or manual)
|
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
---
|
|
2
|
-
description: Generate Playwright Page Object
|
|
2
|
+
description: Generate a Playwright Page Object Model for a single live URL using the Playwright MCP bridge
|
|
3
3
|
argument-hint: "<URL> [output-dir] [auth-env-file]"
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
Use the `playwright-pom` skill and the Playwright MCP `browser_*` tools to generate Page Object
|
|
6
|
+
Use the `playwright-pom` skill and the Playwright MCP `browser_*` tools to generate a Page Object Model for the single page at $1.
|
|
7
7
|
|
|
8
8
|
Scope and rules:
|
|
9
|
-
-
|
|
10
|
-
- Use `browser_navigate` to open
|
|
11
|
-
- Generate one
|
|
9
|
+
- Only generate a POM for the exact page at $1 — do not navigate to or explore any other pages.
|
|
10
|
+
- Use `browser_navigate` to open the page and `browser_snapshot` to inspect the accessibility tree.
|
|
11
|
+
- Generate one page object for this page (plus small reusable component objects only if the page clearly contains distinct, reusable UI components).
|
|
12
12
|
- Use resilient locators: `getByRole`, `getByLabel`, `getByTestId`, `getByPlaceholder`, `getByText` (in that order). Use CSS/XPath only as a last resort.
|
|
13
13
|
- Each page object should expose high-level business methods (e.g., `loginAs(user)`, `searchFor(term)`) built from the low-level locators.
|
|
14
14
|
- Keep implementation details (selectors, URLs) inside the page object; tests should read like user workflows.
|
|
15
15
|
- Save the generated files under `${2:-tests/pom/}` using clear, kebab-case names (e.g., `login-page.ts`).
|
|
16
16
|
- Only target applications you own or have explicit authorization to test.
|
|
17
17
|
- Do not interact with destructive actions (delete, remove, sign out) unless explicitly requested.
|
|
18
|
-
-
|
|
18
|
+
- Report what was covered once the page object is complete.
|
|
19
19
|
|
|
20
20
|
## Authentication
|
|
21
21
|
|
|
@@ -39,7 +39,7 @@ If the site requires login, handle credentials securely:
|
|
|
39
39
|
3. **Never** ask the user to paste credentials into the chat, and **never** hardcode credentials into generated files.
|
|
40
40
|
|
|
41
41
|
After generating, summarize:
|
|
42
|
-
- The
|
|
43
|
-
- The output file
|
|
44
|
-
- Any
|
|
42
|
+
- The page (and any components) covered
|
|
43
|
+
- The output file path(s)
|
|
44
|
+
- Any parts of the page that could not be inspected and why
|
|
45
45
|
- How authentication was handled (env file or manual)
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
[ 14570ms] [WARNING] The powerPreference option is currently ignored when calling requestAdapter() on Windows. See https://crbug.com/369219127 @ :0
|
|
2
|
+
[ 18833ms] [WARNING] A speculation rule set was inserted into the document but will be ignored. This might happen, for example, if it was previously inserted into another document, or if it was created using the innerHTML setter. @ https://www.google.com/search?q=playwright+test+automation&sca_esv=b3cb815f54d8ec19&source=hp&ei=RICQav7gBoDm5NoPtYioaA&iflsig=ABILxe8AAAAAapCOVCQUd3OYJje-4_I4lPG-zQWogDP_&ved=0ahUKEwj-kr3JtsGWAxUAM1kFHTUECg0Q4dUDCDM&uact=5&oq=playwright+test+automation&gs_lp=Egdnd3Mtd2l6IhpwbGF5d3JpZ2h0IHRlc3QgYXV0b21hdGlvbkgNUABYAHAAeACQAQCYAQCgAQCqAQC4AQPIAQD4AQGYAgCgAgCYAwCSBwCgBwCyBwC4BwDCBwDIBwCACAE&sclient=gws-wiz&sei=UICQauzJI6it5NoPu7KviQ0:34
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
- generic [ref=e2]:
|
|
2
|
+
- navigation [ref=e3]:
|
|
3
|
+
- link "About" [ref=e4] [cursor=pointer]:
|
|
4
|
+
- /url: https://about.google/?fg=1&utm_source=google-US&utm_medium=referral&utm_campaign=hp-header
|
|
5
|
+
- link "Store" [ref=e5] [cursor=pointer]:
|
|
6
|
+
- /url: https://store.google.com/US?utm_source=hp_header&utm_medium=google_ooo&utm_campaign=GS100042&hl=en-US
|
|
7
|
+
- generic [ref=e7]:
|
|
8
|
+
- generic [ref=e8]:
|
|
9
|
+
- link "Gmail" [ref=e10] [cursor=pointer]:
|
|
10
|
+
- /url: https://mail.google.com/mail/&ogbl
|
|
11
|
+
- link "Search for Images" [ref=e12] [cursor=pointer]:
|
|
12
|
+
- /url: https://www.google.com/imghp?hl=en&ogbl
|
|
13
|
+
- text: Images
|
|
14
|
+
- button "Google apps" [ref=e15] [cursor=pointer]
|
|
15
|
+
- link "Sign in" [ref=e20] [cursor=pointer]:
|
|
16
|
+
- /url: https://accounts.google.com/ServiceLogin?hl=en&passive=true&continue=https://www.google.com/&ec=futura_exp_og_so_72776762_e
|
|
17
|
+
- generic [ref=e22]:
|
|
18
|
+
- link [ref=e24] [cursor=pointer]:
|
|
19
|
+
- /url: /search?sca_esv=b3cb815f54d8ec19&q=Which+National+Parks+have+some+of+the+most+scenic+overlooks%3F&udm=50&oi=ddle&noiga=1&ct=460148972&peek_pws=0&aep=84&sa=X&ved=0ahUKEwj-kr3JtsGWAxUAM1kFHTUECg0QPQgH
|
|
20
|
+
- img "Celebrating National Park Week at Yosemite" [ref=e26]
|
|
21
|
+
- button "Share" [ref=e28]
|
|
22
|
+
- search [ref=e36]:
|
|
23
|
+
- generic [ref=e38]:
|
|
24
|
+
- generic [ref=e40]:
|
|
25
|
+
- button "Add files and tools" [ref=e45] [cursor=pointer]
|
|
26
|
+
- combobox "Search" [active] [ref=e50]
|
|
27
|
+
- generic [ref=e51]:
|
|
28
|
+
- generic [ref=e52]:
|
|
29
|
+
- button "Search by voice" [ref=e55] [cursor=pointer]
|
|
30
|
+
- button "Search by image" [ref=e60] [cursor=pointer]
|
|
31
|
+
- link "AI Mode" [ref=e63] [cursor=pointer]
|
|
32
|
+
- generic [ref=e76]:
|
|
33
|
+
- button "Google Search" [ref=e77] [cursor=pointer]
|
|
34
|
+
- button "I'm Feeling Lucky" [ref=e78] [cursor=pointer]
|
|
35
|
+
- 'link "Celebrate National Park Week: Explore Yosemite with Google 🌲" [ref=e88] [cursor=pointer]'
|
|
36
|
+
- contentinfo [ref=e90]:
|
|
37
|
+
- generic [ref=e91]:
|
|
38
|
+
- generic [ref=e92]:
|
|
39
|
+
- link "Advertising" [ref=e93] [cursor=pointer]:
|
|
40
|
+
- /url: https://www.google.com/intl/en_us/ads/?subid=ww-ww-et-g-awa-a-g_hpafoot1_1!o2&utm_source=google.com&utm_medium=referral&utm_campaign=google_hpafooter&fg=1
|
|
41
|
+
- link "Business" [ref=e94] [cursor=pointer]:
|
|
42
|
+
- /url: https://www.google.com/services/?subid=ww-ww-et-g-awa-a-g_hpbfoot1_1!o2&utm_source=google.com&utm_medium=referral&utm_campaign=google_hpbfooter&fg=1
|
|
43
|
+
- link "How Search works" [ref=e95] [cursor=pointer]:
|
|
44
|
+
- /url: https://google.com/search/howsearchworks/?fg=1
|
|
45
|
+
- link "Build, create, and do more with AI tools from Google" [ref=e97] [cursor=pointer]:
|
|
46
|
+
- /url: https://ai.google/helpful-tools/?utm_source=googlehpfooter&utm_medium=housepromos&utm_campaign=bottom-footer
|
|
47
|
+
- generic [ref=e98]:
|
|
48
|
+
- link "Privacy" [ref=e99] [cursor=pointer]:
|
|
49
|
+
- /url: https://policies.google.com/privacy?hl=en&fg=1
|
|
50
|
+
- link "Terms" [ref=e100] [cursor=pointer]:
|
|
51
|
+
- /url: https://policies.google.com/terms?hl=en&fg=1
|
|
52
|
+
- button "Settings" [ref=e104] [cursor=pointer]
|