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 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 navigation is captured in real time — **including inside iframes**
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. Assertions via keyboard shortcuts: **Shift+Click** (element visible), **Ctrl+Shift+U** (URL), **Ctrl+Shift+T** (page title)
126
- 6. On stop, each action is added as a step with **pre-generated Playwright code** no AI call needed
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 | **Auto** — detects iframes, generates `frameLocator()` code |
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) | Auto-detects iframe context, generates `frameLocator()` chains — no manual frame handling |
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 DVH*
340
+ *Built by [Deepak Hiremath](https://www.linkedin.com/in/deepak-hiremath-0017937a/)*