@scenetest/scenes 0.2.0 → 0.3.0

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.
Files changed (52) hide show
  1. package/dist/__tests__/dsl.test.js +4 -0
  2. package/dist/__tests__/dsl.test.js.map +1 -1
  3. package/dist/__tests__/keyboard.test.d.ts +2 -0
  4. package/dist/__tests__/keyboard.test.d.ts.map +1 -0
  5. package/dist/__tests__/keyboard.test.js +332 -0
  6. package/dist/__tests__/keyboard.test.js.map +1 -0
  7. package/dist/__tests__/reactive.test.js +210 -6
  8. package/dist/__tests__/reactive.test.js.map +1 -1
  9. package/dist/actor.d.ts +20 -4
  10. package/dist/actor.d.ts.map +1 -1
  11. package/dist/actor.js +168 -12
  12. package/dist/actor.js.map +1 -1
  13. package/dist/builtin-macros.d.ts +87 -0
  14. package/dist/builtin-macros.d.ts.map +1 -0
  15. package/dist/builtin-macros.js +154 -0
  16. package/dist/builtin-macros.js.map +1 -0
  17. package/dist/cli.js +12 -0
  18. package/dist/cli.js.map +1 -1
  19. package/dist/devices.d.ts +6 -0
  20. package/dist/devices.d.ts.map +1 -1
  21. package/dist/devices.js +13 -0
  22. package/dist/devices.js.map +1 -1
  23. package/dist/dsl.d.ts +4 -0
  24. package/dist/dsl.d.ts.map +1 -1
  25. package/dist/dsl.js +13 -1
  26. package/dist/dsl.js.map +1 -1
  27. package/dist/index.d.ts +5 -2
  28. package/dist/index.d.ts.map +1 -1
  29. package/dist/index.js +5 -1
  30. package/dist/index.js.map +1 -1
  31. package/dist/keyboard.d.ts +168 -0
  32. package/dist/keyboard.d.ts.map +1 -0
  33. package/dist/keyboard.js +370 -0
  34. package/dist/keyboard.js.map +1 -0
  35. package/dist/reactive.d.ts +24 -2
  36. package/dist/reactive.d.ts.map +1 -1
  37. package/dist/reactive.js +138 -16
  38. package/dist/reactive.js.map +1 -1
  39. package/dist/runner.d.ts.map +1 -1
  40. package/dist/runner.js +47 -10
  41. package/dist/runner.js.map +1 -1
  42. package/dist/swarm.d.ts +1 -1
  43. package/dist/swarm.d.ts.map +1 -1
  44. package/dist/swarm.js +2 -2
  45. package/dist/swarm.js.map +1 -1
  46. package/dist/team-manager.d.ts +48 -3
  47. package/dist/team-manager.d.ts.map +1 -1
  48. package/dist/team-manager.js +150 -15
  49. package/dist/team-manager.js.map +1 -1
  50. package/dist/types.d.ts +115 -0
  51. package/dist/types.d.ts.map +1 -1
  52. package/package.json +3 -3
package/dist/actor.js CHANGED
@@ -1,5 +1,7 @@
1
+ import { tabToElement, pressEnter, pressSpace, clearAndType, keyboardSelectOption, fuzzyFingerClick, fuzzyFingerFill, fuzzyFingerCheck } from './keyboard.js';
1
2
  import { resolveSelector } from './selectors.js';
2
3
  import { parseDslLines, parseAction, applyDslAction } from './dsl.js';
4
+ import { findDevice } from './devices.js';
3
5
  /**
4
6
  * Format a Selector for display in logs/errors
5
7
  */
@@ -19,6 +21,8 @@ class ActionChainImpl {
19
21
  warnings;
20
22
  actionTimeout;
21
23
  warnAfter;
24
+ navigationMode;
25
+ fuzzyFingers;
22
26
  actions = [];
23
27
  // Current scope - starts as page, changes with see()
24
28
  currentScope;
@@ -28,7 +32,7 @@ class ActionChainImpl {
28
32
  scopeSetUrl = '';
29
33
  // Per-entry URLs matching scopeStack (kept in sync)
30
34
  scopeStackUrls = [];
31
- constructor(actor, page, bus, timeline, warnings, actionTimeout, warnAfter) {
35
+ constructor(actor, page, bus, timeline, warnings, actionTimeout, warnAfter, navigationMode = 'pointer', fuzzyFingers = false) {
32
36
  this.actor = actor;
33
37
  this.page = page;
34
38
  this.bus = bus;
@@ -36,8 +40,23 @@ class ActionChainImpl {
36
40
  this.warnings = warnings;
37
41
  this.actionTimeout = actionTimeout;
38
42
  this.warnAfter = warnAfter;
43
+ this.navigationMode = navigationMode;
44
+ this.fuzzyFingers = fuzzyFingers;
39
45
  this.currentScope = page;
40
46
  }
47
+ /**
48
+ * Whether this chain uses keyboard navigation.
49
+ */
50
+ get isKeyboard() {
51
+ return this.navigationMode === 'keyboard';
52
+ }
53
+ /**
54
+ * Whether fuzzy-finger touch behavior is enabled for pointer mode.
55
+ * Fuzzy-finger simulates imprecise human touch: miss → pause → correct click.
56
+ */
57
+ get useFuzzyFingers() {
58
+ return this.navigationMode === 'pointer' && this.fuzzyFingers;
59
+ }
41
60
  addAction(name, target, execute) {
42
61
  this.actions.push({ name, target, execute });
43
62
  return this;
@@ -120,6 +139,53 @@ class ActionChainImpl {
120
139
  this.scopeStackUrls = [];
121
140
  });
122
141
  }
142
+ reload() {
143
+ return this.addAction('reload', undefined, async () => {
144
+ await this.page.reload({ timeout: this.actionTimeout });
145
+ this.currentScope = this.page;
146
+ this.scopeStack = [];
147
+ this.scopeSetUrl = '';
148
+ this.scopeStackUrls = [];
149
+ });
150
+ }
151
+ goBack() {
152
+ return this.addAction('goBack', undefined, async () => {
153
+ await this.page.goBack({ timeout: this.actionTimeout });
154
+ this.currentScope = this.page;
155
+ this.scopeStack = [];
156
+ this.scopeSetUrl = '';
157
+ this.scopeStackUrls = [];
158
+ });
159
+ }
160
+ goForward() {
161
+ return this.addAction('goForward', undefined, async () => {
162
+ await this.page.goForward({ timeout: this.actionTimeout });
163
+ this.currentScope = this.page;
164
+ this.scopeStack = [];
165
+ this.scopeSetUrl = '';
166
+ this.scopeStackUrls = [];
167
+ });
168
+ }
169
+ switchDevice(device) {
170
+ return this.addAction('switchDevice', device ?? '(next)', async () => {
171
+ const factory = this.actor.getPageFactory();
172
+ if (!factory) {
173
+ throw new Error('switchDevice requires the scene runner (page factory not available)');
174
+ }
175
+ const profile = device ? findDevice(device) : null;
176
+ // Factory closes old context, creates new one with assertion wiring
177
+ const { page, context } = await factory(profile);
178
+ // Update actor's backing references
179
+ this.actor._switchPage(page, context);
180
+ // Update chain's local page reference
181
+ this.page = page;
182
+ // Reset scope to new page root
183
+ this.currentScope = this.page;
184
+ this.scopeStack = [];
185
+ this.scopeSetUrl = '';
186
+ this.scopeStackUrls = [];
187
+ });
188
+ }
123
189
  see(selector) {
124
190
  const target = formatSelector(selector);
125
191
  return this.addAction('see', target, async () => {
@@ -177,31 +243,85 @@ class ActionChainImpl {
177
243
  if (scope === this.page) {
178
244
  throw new Error('click with no selector requires a scope (use see() first)');
179
245
  }
180
- await scope.click({ timeout: this.actionTimeout });
246
+ if (this.isKeyboard) {
247
+ await tabToElement(this.page, scope, { timeout: this.actionTimeout });
248
+ await pressEnter(this.page);
249
+ }
250
+ else if (this.useFuzzyFingers) {
251
+ await fuzzyFingerClick(this.page, scope, this.actionTimeout, '(scope)');
252
+ }
253
+ else {
254
+ await scope.click({ timeout: this.actionTimeout });
255
+ }
181
256
  });
182
257
  }
183
258
  const target = formatSelector(selector);
184
259
  return this.addAction('click', target, async () => {
185
- await resolveSelector(this.getScope(), selector).click({ timeout: this.actionTimeout });
260
+ const locator = resolveSelector(this.getScope(), selector);
261
+ if (this.isKeyboard) {
262
+ await locator.waitFor({ state: 'visible', timeout: this.actionTimeout });
263
+ await tabToElement(this.page, locator, { timeout: this.actionTimeout });
264
+ await pressEnter(this.page);
265
+ }
266
+ else if (this.useFuzzyFingers) {
267
+ await fuzzyFingerClick(this.page, locator, this.actionTimeout, selector);
268
+ }
269
+ else {
270
+ await locator.click({ timeout: this.actionTimeout });
271
+ }
186
272
  });
187
273
  }
188
274
  typeInto(selector, value) {
189
275
  const target = `${formatSelector(selector)}=${value}`;
190
276
  return this.addAction('typeInto', target, async () => {
191
- await resolveSelector(this.getScope(), selector).fill(value, { timeout: this.actionTimeout });
277
+ const locator = resolveSelector(this.getScope(), selector);
278
+ if (this.isKeyboard) {
279
+ await locator.waitFor({ state: 'visible', timeout: this.actionTimeout });
280
+ await tabToElement(this.page, locator, { timeout: this.actionTimeout });
281
+ await clearAndType(this.page, value);
282
+ }
283
+ else if (this.useFuzzyFingers) {
284
+ await fuzzyFingerFill(this.page, locator, value, this.actionTimeout, selector);
285
+ }
286
+ else {
287
+ await locator.fill(value, { timeout: this.actionTimeout });
288
+ }
192
289
  // typeInto stays in current scope
193
290
  });
194
291
  }
195
292
  check(selector) {
196
293
  const target = formatSelector(selector);
197
294
  return this.addAction('check', target, async () => {
198
- await resolveSelector(this.getScope(), selector).check({ timeout: this.actionTimeout });
295
+ const locator = resolveSelector(this.getScope(), selector);
296
+ if (this.isKeyboard) {
297
+ await locator.waitFor({ state: 'visible', timeout: this.actionTimeout });
298
+ await tabToElement(this.page, locator, { timeout: this.actionTimeout });
299
+ await pressSpace(this.page);
300
+ }
301
+ else if (this.useFuzzyFingers) {
302
+ await fuzzyFingerCheck(this.page, locator, this.actionTimeout, selector);
303
+ }
304
+ else {
305
+ await locator.check({ timeout: this.actionTimeout });
306
+ }
199
307
  });
200
308
  }
201
309
  select(selector, value) {
202
310
  const target = `${formatSelector(selector)}=${value}`;
203
311
  return this.addAction('select', target, async () => {
204
- await resolveSelector(this.getScope(), selector).selectOption(value, { timeout: this.actionTimeout });
312
+ const locator = resolveSelector(this.getScope(), selector);
313
+ if (this.isKeyboard) {
314
+ await locator.waitFor({ state: 'visible', timeout: this.actionTimeout });
315
+ await tabToElement(this.page, locator, { timeout: this.actionTimeout });
316
+ await keyboardSelectOption(this.page, locator, value);
317
+ }
318
+ else if (this.useFuzzyFingers) {
319
+ await fuzzyFingerClick(this.page, locator, this.actionTimeout, selector);
320
+ await locator.selectOption(value, { timeout: this.actionTimeout });
321
+ }
322
+ else {
323
+ await locator.selectOption(value, { timeout: this.actionTimeout });
324
+ }
205
325
  });
206
326
  }
207
327
  wait(ms) {
@@ -442,19 +562,23 @@ export class SequentialActorHandleImpl {
442
562
  actionTimeout;
443
563
  warnAfter;
444
564
  role;
445
- page;
446
- context;
565
+ _page;
566
+ _context;
447
567
  assertions = [];
568
+ navigationMode;
569
+ fuzzyFingers;
448
570
  // Registered watchers for conditional handling
449
571
  watchers = [];
450
572
  // Registered warning triggers
451
573
  warningTriggers = [];
574
+ // Page factory for switchDevice support
575
+ _pageFactory;
452
576
  // Forward config properties
453
577
  key;
454
578
  username;
455
579
  email;
456
580
  password;
457
- constructor(role, config, page, context, bus, timeline, warnings, actionTimeout, warnAfter) {
581
+ constructor(role, config, page, context, bus, timeline, warnings, actionTimeout, warnAfter, navigationMode = 'pointer', fuzzyFingers = false, pageFactory) {
458
582
  this.config = config;
459
583
  this.bus = bus;
460
584
  this.timeline = timeline;
@@ -462,9 +586,12 @@ export class SequentialActorHandleImpl {
462
586
  this.actionTimeout = actionTimeout;
463
587
  this.warnAfter = warnAfter;
464
588
  this.role = role;
465
- this.page = page;
466
- this.context = context;
589
+ this._page = page;
590
+ this._context = context;
591
+ this._pageFactory = pageFactory ?? null;
467
592
  this.key = config.key;
593
+ this.navigationMode = navigationMode;
594
+ this.fuzzyFingers = fuzzyFingers;
468
595
  // Copy all config properties to this instance
469
596
  for (const [k, value] of Object.entries(config)) {
470
597
  if (!(k in this)) {
@@ -475,6 +602,23 @@ export class SequentialActorHandleImpl {
475
602
  }
476
603
  }
477
604
  }
605
+ /** Playwright page for this actor */
606
+ get page() {
607
+ return this._page;
608
+ }
609
+ /** Playwright browser context for this actor */
610
+ get context() {
611
+ return this._context;
612
+ }
613
+ /** Get the page factory (used by ActionChainImpl for switchDevice) */
614
+ getPageFactory() {
615
+ return this._pageFactory;
616
+ }
617
+ /** Update page and context after a device switch */
618
+ _switchPage(page, context) {
619
+ this._page = page;
620
+ this._context = context;
621
+ }
478
622
  /**
479
623
  * Get registered watchers (used by ActionChainImpl)
480
624
  */
@@ -495,11 +639,23 @@ export class SequentialActorHandleImpl {
495
639
  this.watchers = [];
496
640
  }
497
641
  createChain() {
498
- return new ActionChainImpl(this, this.page, this.bus, this.timeline, this.warnings, this.actionTimeout, this.warnAfter);
642
+ return new ActionChainImpl(this, this.page, this.bus, this.timeline, this.warnings, this.actionTimeout, this.warnAfter, this.navigationMode, this.fuzzyFingers);
499
643
  }
500
644
  openTo(url) {
501
645
  return this.createChain().openTo(url);
502
646
  }
647
+ reload() {
648
+ return this.createChain().reload();
649
+ }
650
+ goBack() {
651
+ return this.createChain().goBack();
652
+ }
653
+ goForward() {
654
+ return this.createChain().goForward();
655
+ }
656
+ switchDevice(device) {
657
+ return this.createChain().switchDevice(device);
658
+ }
503
659
  see(selector) {
504
660
  return this.createChain().see(selector);
505
661
  }
package/dist/actor.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"actor.js","sourceRoot":"","sources":["../src/actor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"actor.js","sourceRoot":"","sources":["../src/actor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,87 @@
1
+ import type { Macro } from './dsl.js';
2
+ /**
3
+ * Built-in starter macros — opinionated, practical patterns for common
4
+ * UI interactions. Think of these as "shadcn-style" templates: they ship
5
+ * with scenetest, you opt in via `builtinMacros: true` in your config,
6
+ * and you can override any of them with your own `defineMacro()` call.
7
+ *
8
+ * ## Available macros
9
+ *
10
+ * ### `login`
11
+ * Standard username/password login flow.
12
+ * Uses `[self.username]` and `[self.password]` from the actor config.
13
+ *
14
+ * ### `logout`
15
+ * Click a user-menu, then log out.
16
+ *
17
+ * ### `ensure-visible`
18
+ * Toggle a container open if it isn't already visible.
19
+ * Pass the container selector as the first token, toggle button as second.
20
+ * Example: the sidebar pattern.
21
+ *
22
+ * ```
23
+ * // In your scene:
24
+ * alice.dsl('ensure-visible sidebar-links-list sidebar-toggle')
25
+ * ```
26
+ *
27
+ * This is registered as a two-action macro but the *real* pattern is
28
+ * better expressed using the `if()` API for conditional handling:
29
+ *
30
+ * ```ts
31
+ * alice.if('sidebar-toggle', async () => {
32
+ * // Toggle is visible = sidebar is collapsed, click to expand
33
+ * await alice.click('sidebar-toggle')
34
+ * })
35
+ * await alice.see('sidebar-links-list')
36
+ * ```
37
+ *
38
+ * ### `dismiss-if-present`
39
+ * Dismiss a modal/banner/toast if it appears, otherwise continue.
40
+ * Best used with the `if()` API:
41
+ *
42
+ * ```ts
43
+ * user.if('welcome-modal', async () => {
44
+ * await user.click('dismiss-button')
45
+ * })
46
+ * ```
47
+ *
48
+ * ### `refresh-and-retry`
49
+ * When an error state is on screen, click refresh and wait for
50
+ * the content to reappear. This is a macro version of a common
51
+ * resilience pattern — real users hit refresh when things break.
52
+ *
53
+ * ```
54
+ * // After an error, retry:
55
+ * alice.dsl('refresh-and-retry')
56
+ * ```
57
+ *
58
+ * ## Customization
59
+ *
60
+ * Override any built-in macro by calling `defineMacro()` with the same
61
+ * name *after* `registerBuiltinMacros()`. Your version wins.
62
+ *
63
+ * Or define your own from scratch — the built-in collection is just a
64
+ * starting point.
65
+ */
66
+ /**
67
+ * All built-in macros keyed by name.
68
+ * Exported so users can inspect or selectively register.
69
+ */
70
+ export declare const builtinMacroDefinitions: Record<string, Macro>;
71
+ /**
72
+ * Register all built-in macros in the global macro registry.
73
+ * Call this from the runner when `builtinMacros: true` is set in config.
74
+ *
75
+ * Macros registered here can be overridden by a later `defineMacro()`
76
+ * call with the same name.
77
+ */
78
+ export declare function registerBuiltinMacros(): void;
79
+ /**
80
+ * Register a subset of built-in macros by name.
81
+ *
82
+ * ```ts
83
+ * registerSelectedMacros(['login', 'logout'])
84
+ * ```
85
+ */
86
+ export declare function registerSelectedMacros(names: string[]): void;
87
+ //# sourceMappingURL=builtin-macros.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"builtin-macros.d.ts","sourceRoot":"","sources":["../src/builtin-macros.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,UAAU,CAAA;AAErC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+DG;AAMH;;;GAGG;AACH,eAAO,MAAM,uBAAuB,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAqDzD,CAAA;AAMD;;;;;;GAMG;AACH,wBAAgB,qBAAqB,IAAI,IAAI,CAI5C;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAO5D"}
@@ -0,0 +1,154 @@
1
+ import { defineMacro } from './dsl.js';
2
+ /**
3
+ * Built-in starter macros — opinionated, practical patterns for common
4
+ * UI interactions. Think of these as "shadcn-style" templates: they ship
5
+ * with scenetest, you opt in via `builtinMacros: true` in your config,
6
+ * and you can override any of them with your own `defineMacro()` call.
7
+ *
8
+ * ## Available macros
9
+ *
10
+ * ### `login`
11
+ * Standard username/password login flow.
12
+ * Uses `[self.username]` and `[self.password]` from the actor config.
13
+ *
14
+ * ### `logout`
15
+ * Click a user-menu, then log out.
16
+ *
17
+ * ### `ensure-visible`
18
+ * Toggle a container open if it isn't already visible.
19
+ * Pass the container selector as the first token, toggle button as second.
20
+ * Example: the sidebar pattern.
21
+ *
22
+ * ```
23
+ * // In your scene:
24
+ * alice.dsl('ensure-visible sidebar-links-list sidebar-toggle')
25
+ * ```
26
+ *
27
+ * This is registered as a two-action macro but the *real* pattern is
28
+ * better expressed using the `if()` API for conditional handling:
29
+ *
30
+ * ```ts
31
+ * alice.if('sidebar-toggle', async () => {
32
+ * // Toggle is visible = sidebar is collapsed, click to expand
33
+ * await alice.click('sidebar-toggle')
34
+ * })
35
+ * await alice.see('sidebar-links-list')
36
+ * ```
37
+ *
38
+ * ### `dismiss-if-present`
39
+ * Dismiss a modal/banner/toast if it appears, otherwise continue.
40
+ * Best used with the `if()` API:
41
+ *
42
+ * ```ts
43
+ * user.if('welcome-modal', async () => {
44
+ * await user.click('dismiss-button')
45
+ * })
46
+ * ```
47
+ *
48
+ * ### `refresh-and-retry`
49
+ * When an error state is on screen, click refresh and wait for
50
+ * the content to reappear. This is a macro version of a common
51
+ * resilience pattern — real users hit refresh when things break.
52
+ *
53
+ * ```
54
+ * // After an error, retry:
55
+ * alice.dsl('refresh-and-retry')
56
+ * ```
57
+ *
58
+ * ## Customization
59
+ *
60
+ * Override any built-in macro by calling `defineMacro()` with the same
61
+ * name *after* `registerBuiltinMacros()`. Your version wins.
62
+ *
63
+ * Or define your own from scratch — the built-in collection is just a
64
+ * starting point.
65
+ */
66
+ // ---------------------------------------------------------------------------
67
+ // Macro definitions
68
+ // ---------------------------------------------------------------------------
69
+ /**
70
+ * All built-in macros keyed by name.
71
+ * Exported so users can inspect or selectively register.
72
+ */
73
+ export const builtinMacroDefinitions = {
74
+ /**
75
+ * Standard login flow.
76
+ * Expects actor config to have `username` and `password` fields.
77
+ *
78
+ * ```yaml
79
+ * # actors.ts
80
+ * export default {
81
+ * alice: { id: 'alice', username: 'alice@test.com', password: 'test123' },
82
+ * }
83
+ * ```
84
+ */
85
+ login: [
86
+ 'see login-form',
87
+ 'typeInto username [self.username]',
88
+ 'typeInto password [self.password]',
89
+ 'click login-submit',
90
+ 'see dashboard',
91
+ ],
92
+ /**
93
+ * Standard logout flow.
94
+ * Clicks user menu → logout button → verifies login form appears.
95
+ */
96
+ logout: [
97
+ 'click user-menu',
98
+ 'click logout-button',
99
+ 'see login-form',
100
+ ],
101
+ /**
102
+ * Refresh and retry pattern.
103
+ * When something goes wrong, click refresh and wait for main content.
104
+ *
105
+ * Customize the selectors to match your app:
106
+ * - `error-state` — the error indicator
107
+ * - `refresh-button` — the retry/refresh button
108
+ * - `main-content` — what should appear after refresh
109
+ */
110
+ 'refresh-and-retry': [
111
+ 'click refresh-button',
112
+ 'wait 500',
113
+ 'see main-content',
114
+ ],
115
+ /**
116
+ * Close cookie/consent banner if present.
117
+ * Many apps show these on first visit.
118
+ */
119
+ 'accept-cookies': [
120
+ 'see cookie-banner',
121
+ 'click accept-cookies',
122
+ ],
123
+ };
124
+ // ---------------------------------------------------------------------------
125
+ // Registration
126
+ // ---------------------------------------------------------------------------
127
+ /**
128
+ * Register all built-in macros in the global macro registry.
129
+ * Call this from the runner when `builtinMacros: true` is set in config.
130
+ *
131
+ * Macros registered here can be overridden by a later `defineMacro()`
132
+ * call with the same name.
133
+ */
134
+ export function registerBuiltinMacros() {
135
+ for (const [name, actions] of Object.entries(builtinMacroDefinitions)) {
136
+ defineMacro(name, actions);
137
+ }
138
+ }
139
+ /**
140
+ * Register a subset of built-in macros by name.
141
+ *
142
+ * ```ts
143
+ * registerSelectedMacros(['login', 'logout'])
144
+ * ```
145
+ */
146
+ export function registerSelectedMacros(names) {
147
+ for (const name of names) {
148
+ const actions = builtinMacroDefinitions[name];
149
+ if (actions) {
150
+ defineMacro(name, actions);
151
+ }
152
+ }
153
+ }
154
+ //# sourceMappingURL=builtin-macros.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"builtin-macros.js","sourceRoot":"","sources":["../src/builtin-macros.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAGtC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+DG;AAEH,8EAA8E;AAC9E,oBAAoB;AACpB,8EAA8E;AAE9E;;;GAGG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAA0B;IAC5D;;;;;;;;;;OAUG;IACH,KAAK,EAAE;QACL,gBAAgB;QAChB,mCAAmC;QACnC,mCAAmC;QACnC,oBAAoB;QACpB,eAAe;KAChB;IAED;;;OAGG;IACH,MAAM,EAAE;QACN,iBAAiB;QACjB,qBAAqB;QACrB,gBAAgB;KACjB;IAED;;;;;;;;OAQG;IACH,mBAAmB,EAAE;QACnB,sBAAsB;QACtB,UAAU;QACV,kBAAkB;KACnB;IAED;;;OAGG;IACH,gBAAgB,EAAE;QAChB,mBAAmB;QACnB,sBAAsB;KACvB;CACF,CAAA;AAED,8EAA8E;AAC9E,eAAe;AACf,8EAA8E;AAE9E;;;;;;GAMG;AACH,MAAM,UAAU,qBAAqB;IACnC,KAAK,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,uBAAuB,CAAC,EAAE,CAAC;QACtE,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;IAC5B,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,sBAAsB,CAAC,KAAe;IACpD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,OAAO,GAAG,uBAAuB,CAAC,IAAI,CAAC,CAAA;QAC7C,IAAI,OAAO,EAAE,CAAC;YACZ,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;QAC5B,CAAC;IACH,CAAC;AACH,CAAC"}
package/dist/cli.js CHANGED
@@ -18,7 +18,10 @@ program
18
18
  .option('--format <format>', 'Report format (html, json, both)')
19
19
  .option('--config <path>', 'Path to config file')
20
20
  .option('--devices', 'Enable device rotation (assign each actor a rotating mobile/tablet/desktop device)')
21
+ .option('--no-keyboard-actor', 'Disable keyboard-only actor rotation (keyboard navigation is ON by default)')
22
+ .option('--fuzzy-fingers', 'Enable fuzzy-finger touch behavior (simulates imprecise human touch ~1 in 5 clicks)')
21
23
  .option('--swarm', 'Force swarm mode: run all teams against all scenes to classify failures')
24
+ .option('--no-panel', 'Suppress the dev panel in the browser (useful for CI / headless runs)')
22
25
  .action(async (scenes, options) => {
23
26
  try {
24
27
  // Load config and discover actor teams
@@ -36,6 +39,15 @@ program
36
39
  if (options.devices) {
37
40
  config.devices = true;
38
41
  }
42
+ if (options.noKeyboardActor) {
43
+ config.noKeyboardActor = true;
44
+ }
45
+ if (options.fuzzyFingers) {
46
+ config.fuzzyFingers = true;
47
+ }
48
+ if (options.noPanel) {
49
+ config.noPanel = true;
50
+ }
39
51
  // Interactive UI mode
40
52
  if (options.ui) {
41
53
  config.headed = true;