@scenetest/scenes 0.1.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 (90) hide show
  1. package/LICENSE +21 -0
  2. package/dist/__tests__/devices.test.d.ts +2 -0
  3. package/dist/__tests__/devices.test.d.ts.map +1 -0
  4. package/dist/__tests__/devices.test.js +117 -0
  5. package/dist/__tests__/devices.test.js.map +1 -0
  6. package/dist/__tests__/dsl.test.d.ts +2 -0
  7. package/dist/__tests__/dsl.test.d.ts.map +1 -0
  8. package/dist/__tests__/dsl.test.js +385 -0
  9. package/dist/__tests__/dsl.test.js.map +1 -0
  10. package/dist/__tests__/markdown-scene.test.d.ts +2 -0
  11. package/dist/__tests__/markdown-scene.test.d.ts.map +1 -0
  12. package/dist/__tests__/markdown-scene.test.js +508 -0
  13. package/dist/__tests__/markdown-scene.test.js.map +1 -0
  14. package/dist/__tests__/reactive.test.d.ts +2 -0
  15. package/dist/__tests__/reactive.test.d.ts.map +1 -0
  16. package/dist/__tests__/reactive.test.js +383 -0
  17. package/dist/__tests__/reactive.test.js.map +1 -0
  18. package/dist/__tests__/swarm.test.d.ts +2 -0
  19. package/dist/__tests__/swarm.test.d.ts.map +1 -0
  20. package/dist/__tests__/swarm.test.js +214 -0
  21. package/dist/__tests__/swarm.test.js.map +1 -0
  22. package/dist/actor.d.ts +104 -0
  23. package/dist/actor.d.ts.map +1 -0
  24. package/dist/actor.js +527 -0
  25. package/dist/actor.js.map +1 -0
  26. package/dist/cli.d.ts +3 -0
  27. package/dist/cli.d.ts.map +1 -0
  28. package/dist/cli.js +273 -0
  29. package/dist/cli.js.map +1 -0
  30. package/dist/config.d.ts +21 -0
  31. package/dist/config.d.ts.map +1 -0
  32. package/dist/config.js +120 -0
  33. package/dist/config.js.map +1 -0
  34. package/dist/devices.d.ts +55 -0
  35. package/dist/devices.d.ts.map +1 -0
  36. package/dist/devices.js +167 -0
  37. package/dist/devices.js.map +1 -0
  38. package/dist/dsl.d.ts +99 -0
  39. package/dist/dsl.d.ts.map +1 -0
  40. package/dist/dsl.js +247 -0
  41. package/dist/dsl.js.map +1 -0
  42. package/dist/index.d.ts +13 -0
  43. package/dist/index.d.ts.map +1 -0
  44. package/dist/index.js +16 -0
  45. package/dist/index.js.map +1 -0
  46. package/dist/init.d.ts +9 -0
  47. package/dist/init.d.ts.map +1 -0
  48. package/dist/init.js +27 -0
  49. package/dist/init.js.map +1 -0
  50. package/dist/loader.d.ts +2 -0
  51. package/dist/loader.d.ts.map +1 -0
  52. package/dist/loader.js +10 -0
  53. package/dist/loader.js.map +1 -0
  54. package/dist/markdown-scene.d.ts +120 -0
  55. package/dist/markdown-scene.d.ts.map +1 -0
  56. package/dist/markdown-scene.js +452 -0
  57. package/dist/markdown-scene.js.map +1 -0
  58. package/dist/message-bus.d.ts +31 -0
  59. package/dist/message-bus.d.ts.map +1 -0
  60. package/dist/message-bus.js +74 -0
  61. package/dist/message-bus.js.map +1 -0
  62. package/dist/reactive.d.ts +267 -0
  63. package/dist/reactive.d.ts.map +1 -0
  64. package/dist/reactive.js +779 -0
  65. package/dist/reactive.js.map +1 -0
  66. package/dist/runner.d.ts +51 -0
  67. package/dist/runner.d.ts.map +1 -0
  68. package/dist/runner.js +306 -0
  69. package/dist/runner.js.map +1 -0
  70. package/dist/scene.d.ts +40 -0
  71. package/dist/scene.d.ts.map +1 -0
  72. package/dist/scene.js +110 -0
  73. package/dist/scene.js.map +1 -0
  74. package/dist/selectors.d.ts +57 -0
  75. package/dist/selectors.d.ts.map +1 -0
  76. package/dist/selectors.js +193 -0
  77. package/dist/selectors.js.map +1 -0
  78. package/dist/swarm.d.ts +64 -0
  79. package/dist/swarm.d.ts.map +1 -0
  80. package/dist/swarm.js +306 -0
  81. package/dist/swarm.js.map +1 -0
  82. package/dist/team-manager.d.ts +120 -0
  83. package/dist/team-manager.d.ts.map +1 -0
  84. package/dist/team-manager.js +267 -0
  85. package/dist/team-manager.js.map +1 -0
  86. package/dist/types.d.ts +653 -0
  87. package/dist/types.d.ts.map +1 -0
  88. package/dist/types.js +2 -0
  89. package/dist/types.js.map +1 -0
  90. package/package.json +61 -0
@@ -0,0 +1,508 @@
1
+ import { describe, it, expect } from 'vitest';
2
+ import { parseMarkdownScenes } from '../markdown-scene.js';
3
+ // ---------------------------------------------------------------------------
4
+ // Parser tests
5
+ // ---------------------------------------------------------------------------
6
+ describe('parseMarkdownScenes', () => {
7
+ it('parses a simple single-scene file with # heading', () => {
8
+ const content = `
9
+ # User logs in
10
+
11
+ user:
12
+ openTo /login
13
+ see login-form
14
+ typeInto email alice@test.com
15
+ click submit
16
+ see dashboard
17
+ `;
18
+ const scenes = parseMarkdownScenes(content, '/test/login.spec.md');
19
+ expect(scenes).toHaveLength(1);
20
+ expect(scenes[0].name).toBe('User logs in');
21
+ expect(scenes[0].group).toBeUndefined();
22
+ expect(scenes[0].blocks).toHaveLength(1);
23
+ expect(scenes[0].blocks[0].role).toBe('user');
24
+ expect(scenes[0].blocks[0].actions).toEqual([
25
+ { type: 'action', line: 'openTo /login' },
26
+ { type: 'action', line: 'see login-form' },
27
+ { type: 'action', line: 'typeInto email alice@test.com' },
28
+ { type: 'action', line: 'click submit' },
29
+ { type: 'action', line: 'see dashboard' },
30
+ ]);
31
+ });
32
+ it('parses ## scenes with # groups', () => {
33
+ const content = `
34
+ # Authentication flows
35
+
36
+ ## user logs in successfully
37
+
38
+ user:
39
+ openTo /login
40
+ click submit
41
+
42
+ ## user fails to log in
43
+
44
+ user:
45
+ openTo /login
46
+ see error-message
47
+ `;
48
+ const scenes = parseMarkdownScenes(content, '/test/auth.spec.md');
49
+ expect(scenes).toHaveLength(2);
50
+ expect(scenes[0].name).toBe('user logs in successfully');
51
+ expect(scenes[0].group).toBe('Authentication flows');
52
+ expect(scenes[0].blocks).toHaveLength(1);
53
+ expect(scenes[1].name).toBe('user fails to log in');
54
+ expect(scenes[1].group).toBe('Authentication flows');
55
+ expect(scenes[1].blocks).toHaveLength(1);
56
+ });
57
+ it('handles multiple actor blocks in one scene', () => {
58
+ const content = `
59
+ # two users chat
60
+
61
+ alice:
62
+ openTo /chat
63
+ see message-input
64
+ typeInto message-input Hello!
65
+ click send
66
+
67
+ bob:
68
+ openTo /chat
69
+ seeText Hello!
70
+ `;
71
+ const scenes = parseMarkdownScenes(content, '/test/chat.spec.md');
72
+ expect(scenes).toHaveLength(1);
73
+ expect(scenes[0].blocks).toHaveLength(2);
74
+ expect(scenes[0].blocks[0].role).toBe('alice');
75
+ expect(scenes[0].blocks[0].actions).toHaveLength(4);
76
+ expect(scenes[0].blocks[1].role).toBe('bob');
77
+ expect(scenes[0].blocks[1].actions).toHaveLength(2);
78
+ });
79
+ it('handles actor switching back to same actor', () => {
80
+ const content = `
81
+ # friend request
82
+
83
+ alice:
84
+ openTo /friends
85
+ click search
86
+
87
+ bob:
88
+ openTo /notifications
89
+
90
+ alice:
91
+ click send-request
92
+ `;
93
+ const scenes = parseMarkdownScenes(content, '/test/friends.spec.md');
94
+ expect(scenes).toHaveLength(1);
95
+ // Three blocks: alice, bob, alice again
96
+ expect(scenes[0].blocks).toHaveLength(3);
97
+ expect(scenes[0].blocks[0].role).toBe('alice');
98
+ expect(scenes[0].blocks[1].role).toBe('bob');
99
+ expect(scenes[0].blocks[2].role).toBe('alice');
100
+ });
101
+ it('strips leading dash prefix from action lines', () => {
102
+ const content = `
103
+ # test
104
+
105
+ user:
106
+ - openTo /login
107
+ - see login-form
108
+ - click submit
109
+ `;
110
+ const scenes = parseMarkdownScenes(content, '/test/dash.spec.md');
111
+ expect(scenes[0].blocks[0].actions).toEqual([
112
+ { type: 'action', line: 'openTo /login' },
113
+ { type: 'action', line: 'see login-form' },
114
+ { type: 'action', line: 'click submit' },
115
+ ]);
116
+ });
117
+ it('strips numbered list prefix from action lines', () => {
118
+ const content = `
119
+ # test
120
+
121
+ user:
122
+ 1. openTo /login
123
+ 2. see login-form
124
+ 3. typeInto email alice@test.com
125
+ 4. click submit
126
+ `;
127
+ const scenes = parseMarkdownScenes(content, '/test/numbered.spec.md');
128
+ expect(scenes[0].blocks[0].actions).toEqual([
129
+ { type: 'action', line: 'openTo /login' },
130
+ { type: 'action', line: 'see login-form' },
131
+ { type: 'action', line: 'typeInto email alice@test.com' },
132
+ { type: 'action', line: 'click submit' },
133
+ ]);
134
+ });
135
+ it('handles mixed list formats (plain, dash, numbered)', () => {
136
+ const content = `
137
+ # test
138
+
139
+ user:
140
+ openTo /login
141
+ - see login-form
142
+ 1. typeInto email alice@test.com
143
+ 2. click submit
144
+ see dashboard
145
+ `;
146
+ const scenes = parseMarkdownScenes(content, '/test/mixed.spec.md');
147
+ expect(scenes[0].blocks[0].actions).toEqual([
148
+ { type: 'action', line: 'openTo /login' },
149
+ { type: 'action', line: 'see login-form' },
150
+ { type: 'action', line: 'typeInto email alice@test.com' },
151
+ { type: 'action', line: 'click submit' },
152
+ { type: 'action', line: 'see dashboard' },
153
+ ]);
154
+ });
155
+ it('parses comments', () => {
156
+ const content = `
157
+ # test
158
+
159
+ user:
160
+ openTo /login
161
+ // Fill in credentials
162
+ typeInto email test@test.com
163
+ `;
164
+ const scenes = parseMarkdownScenes(content, '/test/comments.spec.md');
165
+ const actions = scenes[0].blocks[0].actions;
166
+ expect(actions).toHaveLength(3);
167
+ expect(actions[0]).toEqual({ type: 'action', line: 'openTo /login' });
168
+ expect(actions[1]).toEqual({ type: 'comment', text: 'Fill in credentials' });
169
+ expect(actions[2]).toEqual({ type: 'action', line: 'typeInto email test@test.com' });
170
+ });
171
+ it('skips empty comments', () => {
172
+ const content = `
173
+ # test
174
+
175
+ user:
176
+ openTo /
177
+ //
178
+ see dashboard
179
+ `;
180
+ const scenes = parseMarkdownScenes(content, '/test/empty-comment.spec.md');
181
+ const actions = scenes[0].blocks[0].actions;
182
+ expect(actions).toHaveLength(2);
183
+ });
184
+ it('parses if blocks with indented sub-actions', () => {
185
+ const content = `
186
+ # test
187
+
188
+ user:
189
+ openTo /app
190
+ if welcome-modal
191
+ click dismiss-button
192
+ see dashboard
193
+ see main-content
194
+ `;
195
+ const scenes = parseMarkdownScenes(content, '/test/if.spec.md');
196
+ const actions = scenes[0].blocks[0].actions;
197
+ expect(actions).toHaveLength(3);
198
+ expect(actions[0]).toEqual({ type: 'action', line: 'openTo /app' });
199
+ expect(actions[1]).toEqual({
200
+ type: 'if',
201
+ selector: 'welcome-modal',
202
+ actions: ['click dismiss-button', 'see dashboard'],
203
+ });
204
+ expect(actions[2]).toEqual({ type: 'action', line: 'see main-content' });
205
+ });
206
+ it('strips dash prefix inside if blocks', () => {
207
+ const content = `
208
+ # test
209
+
210
+ user:
211
+ if modal
212
+ - click close
213
+ - see content
214
+ see page
215
+ `;
216
+ const scenes = parseMarkdownScenes(content, '/test/if-dash.spec.md');
217
+ const ifAction = scenes[0].blocks[0].actions[0];
218
+ expect(ifAction).toEqual({
219
+ type: 'if',
220
+ selector: 'modal',
221
+ actions: ['click close', 'see content'],
222
+ });
223
+ });
224
+ it('parses macro invocations (no args)', () => {
225
+ const content = `
226
+ # test
227
+
228
+ user:
229
+ login
230
+ see dashboard
231
+ `;
232
+ const scenes = parseMarkdownScenes(content, '/test/macro.spec.md');
233
+ const actions = scenes[0].blocks[0].actions;
234
+ expect(actions).toHaveLength(2);
235
+ expect(actions[0]).toEqual({ type: 'macro', name: 'login', args: [] });
236
+ expect(actions[1]).toEqual({ type: 'action', line: 'see dashboard' });
237
+ });
238
+ it('parses macro invocations with alias=role mapping', () => {
239
+ const content = `
240
+ # test
241
+
242
+ primary-user:
243
+ searchForFriend target=new-user
244
+ `;
245
+ const scenes = parseMarkdownScenes(content, '/test/macro-args.spec.md');
246
+ const actions = scenes[0].blocks[0].actions;
247
+ expect(actions[0]).toEqual({
248
+ type: 'macro',
249
+ name: 'searchForFriend',
250
+ args: [{ type: 'mapping', alias: 'target', role: 'new-user' }],
251
+ });
252
+ });
253
+ it('parses macro invocations with multiple alias mappings', () => {
254
+ const content = `
255
+ # test
256
+
257
+ admin:
258
+ setupFriendship user1=alice user2=bob
259
+ `;
260
+ const scenes = parseMarkdownScenes(content, '/test/macro-multi.spec.md');
261
+ const actions = scenes[0].blocks[0].actions;
262
+ expect(actions[0]).toEqual({
263
+ type: 'macro',
264
+ name: 'setupFriendship',
265
+ args: [
266
+ { type: 'mapping', alias: 'user1', role: 'alice' },
267
+ { type: 'mapping', alias: 'user2', role: 'bob' },
268
+ ],
269
+ });
270
+ });
271
+ it('parses macro invocations with mixed mappings and literals', () => {
272
+ const content = `
273
+ # test
274
+
275
+ admin:
276
+ setupEnv target=new-user some-literal-value
277
+ `;
278
+ const scenes = parseMarkdownScenes(content, '/test/macro-mixed.spec.md');
279
+ const actions = scenes[0].blocks[0].actions;
280
+ expect(actions[0]).toEqual({
281
+ type: 'macro',
282
+ name: 'setupEnv',
283
+ args: [
284
+ { type: 'mapping', alias: 'target', role: 'new-user' },
285
+ { type: 'literal', value: 'some-literal-value' },
286
+ ],
287
+ });
288
+ });
289
+ it('parses bare click (no selector)', () => {
290
+ const content = `
291
+ # test
292
+
293
+ user:
294
+ see notifications-badge
295
+ click
296
+ `;
297
+ const scenes = parseMarkdownScenes(content, '/test/bare-click.spec.md');
298
+ const actions = scenes[0].blocks[0].actions;
299
+ expect(actions[1]).toEqual({ type: 'action', line: 'click' });
300
+ });
301
+ it('parses seeInView action', () => {
302
+ const content = `
303
+ # test
304
+
305
+ user:
306
+ openTo /
307
+ seeInView hero-banner
308
+ click get-started
309
+ `;
310
+ const scenes = parseMarkdownScenes(content, '/test/seeInView.spec.md');
311
+ const actions = scenes[0].blocks[0].actions;
312
+ expect(actions[1]).toEqual({ type: 'action', line: 'seeInView hero-banner' });
313
+ });
314
+ it('parses bare up (no selector)', () => {
315
+ const content = `
316
+ # test
317
+
318
+ user:
319
+ see sidebar menu-item
320
+ click
321
+ up
322
+ see main-content
323
+ `;
324
+ const scenes = parseMarkdownScenes(content, '/test/bare-up.spec.md');
325
+ const actions = scenes[0].blocks[0].actions;
326
+ expect(actions[2]).toEqual({ type: 'action', line: 'up' });
327
+ });
328
+ it('parses waitFor actions', () => {
329
+ const content = `
330
+ # test
331
+
332
+ alice:
333
+ emit setup-done
334
+
335
+ bob:
336
+ waitFor setup-done
337
+ see dashboard
338
+ `;
339
+ const scenes = parseMarkdownScenes(content, '/test/waitfor.spec.md');
340
+ const bobActions = scenes[0].blocks[1].actions;
341
+ expect(bobActions[0]).toEqual({ type: 'action', line: 'waitFor setup-done' });
342
+ });
343
+ it('auto-creates scene if content appears before any heading', () => {
344
+ const content = `
345
+ user:
346
+ openTo /
347
+ see dashboard
348
+ `;
349
+ const scenes = parseMarkdownScenes(content, '/test/no-heading.spec.md');
350
+ expect(scenes).toHaveLength(1);
351
+ expect(scenes[0].name).toBe('no-heading');
352
+ expect(scenes[0].blocks).toHaveLength(1);
353
+ });
354
+ it('handles multiple # headings as separate scenes when no ## exists', () => {
355
+ const content = `
356
+ # Scene one
357
+
358
+ user:
359
+ openTo /one
360
+
361
+ # Scene two
362
+
363
+ user:
364
+ openTo /two
365
+ `;
366
+ const scenes = parseMarkdownScenes(content, '/test/multi.spec.md');
367
+ expect(scenes).toHaveLength(2);
368
+ expect(scenes[0].name).toBe('Scene one');
369
+ expect(scenes[1].name).toBe('Scene two');
370
+ });
371
+ it('handles groups changing between scenes', () => {
372
+ const content = `
373
+ # Auth flows
374
+
375
+ ## login
376
+
377
+ user:
378
+ openTo /login
379
+
380
+ # Dashboard flows
381
+
382
+ ## view dashboard
383
+
384
+ user:
385
+ openTo /dashboard
386
+ `;
387
+ const scenes = parseMarkdownScenes(content, '/test/groups.spec.md');
388
+ expect(scenes).toHaveLength(2);
389
+ expect(scenes[0].group).toBe('Auth flows');
390
+ expect(scenes[1].group).toBe('Dashboard flows');
391
+ });
392
+ it('ignores lines before first actor declaration', () => {
393
+ const content = `
394
+ # test
395
+
396
+ some random text that is not an action
397
+ more text
398
+
399
+ user:
400
+ openTo /
401
+ `;
402
+ const scenes = parseMarkdownScenes(content, '/test/preamble.spec.md');
403
+ expect(scenes[0].blocks).toHaveLength(1);
404
+ expect(scenes[0].blocks[0].actions).toHaveLength(1);
405
+ });
406
+ it('supports inline actor declaration with action', () => {
407
+ const content = `
408
+ # user completes onboarding
409
+ new-user: openTo /
410
+ - see welcome-box
411
+ - click continue-button
412
+ - see onboarding-step
413
+ `;
414
+ const scenes = parseMarkdownScenes(content, '/test/inline.spec.md');
415
+ expect(scenes).toHaveLength(1);
416
+ expect(scenes[0].name).toBe('user completes onboarding');
417
+ expect(scenes[0].blocks).toHaveLength(1);
418
+ expect(scenes[0].blocks[0].role).toBe('new-user');
419
+ expect(scenes[0].blocks[0].actions).toEqual([
420
+ { type: 'action', line: 'openTo /' },
421
+ { type: 'action', line: 'see welcome-box' },
422
+ { type: 'action', line: 'click continue-button' },
423
+ { type: 'action', line: 'see onboarding-step' },
424
+ ]);
425
+ });
426
+ it('supports block actor declaration (role-name:)', () => {
427
+ const content = `
428
+ # test
429
+ primary-user:
430
+ - openTo /
431
+ `;
432
+ const scenes = parseMarkdownScenes(content, '/test/block-decl.spec.md');
433
+ expect(scenes[0].blocks[0].role).toBe('primary-user');
434
+ });
435
+ it('auto-creates scene for role: syntax before any heading', () => {
436
+ const content = `
437
+ user:
438
+ - openTo /
439
+ - see dashboard
440
+ `;
441
+ const scenes = parseMarkdownScenes(content, '/test/role-no-heading.spec.md');
442
+ expect(scenes).toHaveLength(1);
443
+ expect(scenes[0].name).toBe('role-no-heading');
444
+ expect(scenes[0].blocks[0].role).toBe('user');
445
+ });
446
+ it('handles blank lines and whitespace gracefully', () => {
447
+ const content = `
448
+
449
+ # test
450
+
451
+
452
+ user:
453
+
454
+ openTo /login
455
+
456
+ see form
457
+
458
+ `;
459
+ const scenes = parseMarkdownScenes(content, '/test/whitespace.spec.md');
460
+ expect(scenes).toHaveLength(1);
461
+ expect(scenes[0].blocks[0].actions).toHaveLength(2);
462
+ });
463
+ it('handles complex multi-actor multi-scene file', () => {
464
+ const content = `
465
+ # User interactions
466
+
467
+ ## new user gets friend request
468
+
469
+ new-user:
470
+ openTo /
471
+ see welcome-box
472
+ click continue-button
473
+
474
+ primary-user:
475
+ openTo /friends
476
+ click search
477
+ typeInto search-input query
478
+
479
+ new-user:
480
+ seeToast friend-request
481
+ see navbar notifications-badge
482
+ click
483
+
484
+ ## old user re-activates
485
+
486
+ returning-user:
487
+ openTo /login
488
+ see login-form
489
+ `;
490
+ const scenes = parseMarkdownScenes(content, '/test/complex.spec.md');
491
+ expect(scenes).toHaveLength(2);
492
+ // First scene
493
+ expect(scenes[0].name).toBe('new user gets friend request');
494
+ expect(scenes[0].group).toBe('User interactions');
495
+ expect(scenes[0].blocks).toHaveLength(3);
496
+ expect(scenes[0].blocks[0].role).toBe('new-user');
497
+ expect(scenes[0].blocks[0].actions).toHaveLength(3);
498
+ expect(scenes[0].blocks[1].role).toBe('primary-user');
499
+ expect(scenes[0].blocks[1].actions).toHaveLength(3);
500
+ expect(scenes[0].blocks[2].role).toBe('new-user');
501
+ expect(scenes[0].blocks[2].actions).toHaveLength(3);
502
+ // Second scene
503
+ expect(scenes[1].name).toBe('old user re-activates');
504
+ expect(scenes[1].blocks).toHaveLength(1);
505
+ expect(scenes[1].blocks[0].role).toBe('returning-user');
506
+ });
507
+ });
508
+ //# sourceMappingURL=markdown-scene.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"markdown-scene.test.js","sourceRoot":"","sources":["../../src/__tests__/markdown-scene.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=reactive.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reactive.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/reactive.test.ts"],"names":[],"mappings":""}