assuremind 1.2.1 → 1.2.3
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 +83 -8
- package/dist/cli/index.js +1595 -362
- package/dist/cli/index.js.map +1 -1
- package/dist/index.d.mts +27 -1
- package/dist/index.d.ts +27 -1
- package/dist/index.js +204 -1
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +202 -1
- package/dist/index.mjs.map +1 -1
- package/docs/CLI-REFERENCE.md +19 -3
- package/docs/GETTING-STARTED.md +42 -1
- package/docs/STUDIO.md +205 -3
- package/package.json +5 -1
- package/templates/ASSUREMIND.md +7 -0
- package/templates/docs/GETTING-STARTED.md +13 -0
- package/templates/docs/STUDIO.md +11 -1
- package/ui/dist/assets/index-B2cmnLeA.js +942 -0
- package/ui/dist/assets/index-Bz5b82ao.css +1 -0
- package/ui/dist/favicon.svg +7 -7
- package/ui/dist/index.html +2 -2
- package/ui/dist/assets/index-DTtYd1hD.js +0 -837
- package/ui/dist/assets/index-lOAh29q9.css +0 -1
package/README.md
CHANGED
|
@@ -23,10 +23,13 @@ Describe tests in plain English. AI generates Playwright code. Run anywhere.
|
|
|
23
23
|
| **Device emulation** | iPhone, Pixel, iPad, Galaxy — full Playwright device descriptors from UI or `--device` CLI flag |
|
|
24
24
|
| **Studio UI** | Browser-based editor, run dashboard, reports, healing review, git control center — with dark mode |
|
|
25
25
|
| **RAG memory** | AI learns from every run — retrieves similar past steps & healing fixes for smarter generation |
|
|
26
|
-
| **Test Recorder** | Record tests by clicking in a real browser — locators verified against Playwright's accessibility tree, zero AI cost |
|
|
26
|
+
| **Test Recorder** | Record tests by clicking in a real browser — locators verified against Playwright's accessibility tree, zero AI cost. Recorder + AI both handle iframes (click & fill), Shadow DOM, JS alerts, and keyboard actions |
|
|
27
27
|
| **Cost-optimised** | Template engine + code cache + RAG handle ~80% of steps with zero AI calls |
|
|
28
28
|
| **CI-ready** | `npx assuremind run --all --ci` — exit code 0/1, works with any pipeline |
|
|
29
29
|
| **File-based** | Plain JSON storage, fully Git-friendly, no database |
|
|
30
|
+
| **Faker Data** | 100+ @faker-js/faker generators across 16 categories — random emails, names, addresses, sequences — no code, no stale data |
|
|
31
|
+
| **Visual regression** | Pixel-diff screenshot comparison with baselines — approve/reject visual changes in Studio |
|
|
32
|
+
| **CI/CD integration** | Quality gates, PR comments (GitHub/GitLab), Slack/Teams notifications |
|
|
30
33
|
|
|
31
34
|
---
|
|
32
35
|
|
|
@@ -88,7 +91,7 @@ Full reference → [docs/CLI-REFERENCE.md](docs/CLI-REFERENCE.md)
|
|
|
88
91
|
|
|
89
92
|
Start with `npx assuremind studio` — opens at `http://localhost:4400`.
|
|
90
93
|
|
|
91
|
-
**Dashboard** · **Smart Tests** · **Test Editor** · **Run Config** · **Reports** · **Variables** · **Self-Healing** · **Step Library** · **Git Control** · **Settings** · **Docs**
|
|
94
|
+
**Dashboard** · **Smart Tests** · **Test Editor** · **Run Config** · **Reports** · **Variables** · **Self-Healing** · **Step Library** · **Faker Data** · **CI/CD** · **Git Control** · **Settings** · **Docs**
|
|
92
95
|
|
|
93
96
|
Full walkthrough → [docs/STUDIO.md](docs/STUDIO.md)
|
|
94
97
|
|
|
@@ -118,12 +121,17 @@ Click **Record** in the Test Editor, perform your actions, and stop. Each intera
|
|
|
118
121
|
|
|
119
122
|
### How it works
|
|
120
123
|
|
|
124
|
+
> Available for **UI** and **Audit** suites only (not API suites).
|
|
125
|
+
|
|
121
126
|
1. A headed Chromium browser opens your app's URL
|
|
122
|
-
2. Every click, fill, and
|
|
127
|
+
2. Every click, fill, navigation, and keyboard action is captured in real time — **including inside iframes and shadow roots**
|
|
123
128
|
3. Locators are resolved against Playwright's **accessibility tree** — the recorder tries 6 strategies (data-testid, getByRole, getByLabel, getByPlaceholder, getByText, CSS) and verifies each with `count() === 1`
|
|
124
129
|
4. **Iframe-aware** — elements inside iframes automatically generate `page.frameLocator('#iframe').getByRole(...)` code with the correct frame chain
|
|
125
|
-
5.
|
|
126
|
-
6.
|
|
130
|
+
5. **Shadow DOM** — `composedPath()[0]` pierces shadow roots; generates `host >> inner` pierce locators automatically
|
|
131
|
+
6. **JS dialogs** — alerts/confirms are auto-accepted during recording; `page.once('dialog', ...)` is prepended to the triggering step's code
|
|
132
|
+
7. **Keyboard** — Tab, Shift+Tab, arrows, Enter, Escape, Ctrl+A, and Space on buttons are all captured
|
|
133
|
+
8. Assertions via keyboard shortcuts: **Shift+Click** (element visible), **Ctrl+Shift+U** (URL), **Ctrl+Shift+T** (page title)
|
|
134
|
+
9. On stop, each action is added as a step with **pre-generated Playwright code** — no AI call needed
|
|
127
135
|
|
|
128
136
|
### What makes it stand out vs other recorders
|
|
129
137
|
|
|
@@ -131,7 +139,10 @@ Click **Record** in the Test Editor, perform your actions, and stop. Each intera
|
|
|
131
139
|
|---------|-------------|-------------------|---------------------|
|
|
132
140
|
| Locator quality | CSS/XPath | Good | Best — 6 strategies, verified against live page |
|
|
133
141
|
| Accessibility tree | No | Partial | Full — every locator checked via Playwright API |
|
|
134
|
-
| **Iframe support** | Partial | Manual | **
|
|
142
|
+
| **Iframe support** | Partial | Manual | **Full** — detects iframes, generates `frameLocator()` code — click **and** fill both work |
|
|
143
|
+
| **Shadow DOM** | No | Limited | `>>` pierce combinator — elements inside shadow roots are reachable |
|
|
144
|
+
| **JS Alert handling** | No | No | `page.once('dialog', ...)` registered automatically before triggering action |
|
|
145
|
+
| **Keyboard actions** | No | No | `page.keyboard.press()` / `.type()` for keys, shortcuts, and character input |
|
|
135
146
|
| Assertions | Manual | Manual | Shift+Click (hard), Ctrl+Shift+Click (soft), URL & title shortcuts |
|
|
136
147
|
| Plain-English steps | No | No | Yes — human-readable instructions auto-generated |
|
|
137
148
|
| Self-healing after | No | No | Yes — 5-level AI healing cascade |
|
|
@@ -149,7 +160,10 @@ Click **Record** in the Test Editor, perform your actions, and stop. Each intera
|
|
|
149
160
|
| Assertions are hard to write | Shift+Click for hard, Ctrl+Shift+Click for soft, Ctrl+Shift+U for URL, Ctrl+Shift+T for title |
|
|
150
161
|
| Hard vs soft assertions | Soft assertions (`expect.soft()`) let the test continue — all failures reported at end |
|
|
151
162
|
| Recorded tests are fragile | 6-strategy locator resolution + post-run 5-level self-healing |
|
|
152
|
-
| Apps use iframes (SAP, Salesforce) |
|
|
163
|
+
| Apps use iframes (SAP, Salesforce) | Recorder auto-detects iframe context, generates `frameLocator()` chains — **click and fill** both work |
|
|
164
|
+
| Shadow DOM / Web Components | Recorder pierces shadow roots via `composedPath()`, generates `>>` locators automatically |
|
|
165
|
+
| JavaScript alerts & popups | Recorder auto-accepts dialogs; `page.once('dialog', ...)` prepended to triggering step |
|
|
166
|
+
| Keyboard interactions | Recorder captures Tab, Shift+Tab, arrows, Ctrl+A, Enter, Escape, and Space |
|
|
153
167
|
|
|
154
168
|
---
|
|
155
169
|
|
|
@@ -243,6 +257,66 @@ Exit code `0` = all passed · `1` = failures.
|
|
|
243
257
|
|
|
244
258
|
---
|
|
245
259
|
|
|
260
|
+
## Enterprise Features
|
|
261
|
+
|
|
262
|
+
### Faker Data
|
|
263
|
+
|
|
264
|
+
100+ @faker-js/faker generators across 16 categories — generate realistic random data without code.
|
|
265
|
+
|
|
266
|
+
| Generator | Example output |
|
|
267
|
+
|-----------|---------------|
|
|
268
|
+
| `person.fullName` | Sarah Johnson |
|
|
269
|
+
| `internet.email` | sarah.johnson@gmail.com |
|
|
270
|
+
| `phone.number` | +1-555-123-4567 |
|
|
271
|
+
| `finance.amount` | 249.99 |
|
|
272
|
+
| `location.city` | San Francisco |
|
|
273
|
+
| Sequence `USER-{n}` | USER-001, USER-002, USER-003 |
|
|
274
|
+
|
|
275
|
+
Browse by category or search, select multiple tokens at once — selected tokens appear as removable chips, and clicking "Insert N tokens" inserts them all comma-separated (e.g. `{{FAKE_PERSON_FIRSTNAME}}, {{FAKE_PERSON_LASTNAME}}, {{FAKE_INTERNET_EMAIL}}`). Great for form filling. Tokens resolve to fresh random values on every test run — no more "email already exists" failures.
|
|
276
|
+
|
|
277
|
+
### Visual Regression
|
|
278
|
+
|
|
279
|
+
Pixel-perfect screenshot comparison — catch UI changes that functional tests miss. Configure in **Settings** → Visual Regression. Review diffs in **Reports** → Visual Diffs tab.
|
|
280
|
+
|
|
281
|
+
1. Enable in **Settings** → Visual Regression, then toggle the **Eye icon** on any step in the Test Editor
|
|
282
|
+
2. First run captures **baseline** screenshots (committed to git)
|
|
283
|
+
3. Subsequent runs **compare** pixel-by-pixel using `pixelmatch`
|
|
284
|
+
4. Diff > threshold → step **fails** with highlighted diff image
|
|
285
|
+
5. Review in **Reports** → Visual Diffs → **Approve** (update baseline) or **Reject** (it's a bug)
|
|
286
|
+
|
|
287
|
+
```
|
|
288
|
+
baselines/ # committed to git
|
|
289
|
+
├── login-suite/login-test/
|
|
290
|
+
│ ├── step-3-chromium-1920x1080.png
|
|
291
|
+
│ └── step-3-firefox-1920x1080.png
|
|
292
|
+
results/visual-diffs/{runId}/ # gitignored, per-run
|
|
293
|
+
├── step-3-baseline.png
|
|
294
|
+
├── step-3-actual.png
|
|
295
|
+
└── step-3-diff.png # red highlights
|
|
296
|
+
```
|
|
297
|
+
|
|
298
|
+
### CI/CD Integration
|
|
299
|
+
|
|
300
|
+
Quality gates, PR comments, and notifications — configured from Studio, executed in pipelines.
|
|
301
|
+
|
|
302
|
+
| Feature | What it does |
|
|
303
|
+
|---------|-------------|
|
|
304
|
+
| **Quality gates** | Set min pass rate (95%), max duration, required tags — pipeline fails if gate fails |
|
|
305
|
+
| **PR comments** | Auto-post test results as GitHub PR comment or GitLab MR note |
|
|
306
|
+
| **Notifications** | Slack, Teams, Email, custom webhook — trigger on failure, every run, or healing events |
|
|
307
|
+
|
|
308
|
+
```yaml
|
|
309
|
+
# GitHub Actions — full integration
|
|
310
|
+
- name: Run tests
|
|
311
|
+
env:
|
|
312
|
+
AI_PROVIDER: anthropic
|
|
313
|
+
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
|
|
314
|
+
run: npx assuremind run --all --ci
|
|
315
|
+
# Quality gate auto-evaluates, PR comment auto-posts, Slack notifies on failure
|
|
316
|
+
```
|
|
317
|
+
|
|
318
|
+
---
|
|
319
|
+
|
|
246
320
|
## Documentation
|
|
247
321
|
|
|
248
322
|
| Resource | Location |
|
|
@@ -253,6 +327,7 @@ Exit code `0` = all passed · `1` = failures.
|
|
|
253
327
|
| Contributing | [CONTRIBUTING.md](CONTRIBUTING.md) |
|
|
254
328
|
| All AI providers | `.env.example` |
|
|
255
329
|
| Built-in docs | Studio → **Docs** page |
|
|
330
|
+
| Enterprise features | Studio → **Faker Data**, **CI/CD** pages; Visual Regression in **Settings** + **Reports** |
|
|
256
331
|
|
|
257
332
|
---
|
|
258
333
|
|
|
@@ -262,4 +337,4 @@ MIT — see [LICENSE](LICENSE) for details.
|
|
|
262
337
|
|
|
263
338
|
---
|
|
264
339
|
|
|
265
|
-
*Built by
|
|
340
|
+
*Built by [Deepak Hiremath](https://www.linkedin.com/in/deepak-hiremath-0017937a/)*
|