@auto-engineer/narrative 0.19.0 → 0.20.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 (77) hide show
  1. package/.turbo/turbo-build.log +1 -1
  2. package/.turbo/turbo-format.log +4 -0
  3. package/.turbo/turbo-lint.log +4 -0
  4. package/.turbo/turbo-test.log +14 -0
  5. package/.turbo/turbo-type-check.log +4 -0
  6. package/CHANGELOG.md +9 -0
  7. package/dist/src/commands/export-schema-runner.d.ts +3 -0
  8. package/dist/src/commands/export-schema-runner.d.ts.map +1 -0
  9. package/dist/src/commands/export-schema-runner.js +48 -0
  10. package/dist/src/commands/export-schema-runner.js.map +1 -0
  11. package/dist/src/data-narrative-builders.d.ts +13 -8
  12. package/dist/src/data-narrative-builders.d.ts.map +1 -1
  13. package/dist/src/data-narrative-builders.js +47 -20
  14. package/dist/src/data-narrative-builders.js.map +1 -1
  15. package/dist/src/fluent-builder.specs.d.ts +2 -0
  16. package/dist/src/fluent-builder.specs.d.ts.map +1 -0
  17. package/dist/src/fluent-builder.specs.js +28 -0
  18. package/dist/src/fluent-builder.specs.js.map +1 -0
  19. package/dist/src/getNarratives.cache.specs.d.ts +2 -0
  20. package/dist/src/getNarratives.cache.specs.d.ts.map +1 -0
  21. package/dist/src/getNarratives.cache.specs.js +234 -0
  22. package/dist/src/getNarratives.cache.specs.js.map +1 -0
  23. package/dist/src/getNarratives.specs.d.ts +2 -0
  24. package/dist/src/getNarratives.specs.d.ts.map +1 -0
  25. package/dist/src/getNarratives.specs.js +1307 -0
  26. package/dist/src/getNarratives.specs.js.map +1 -0
  27. package/dist/src/id/addAutoIds.d.ts.map +1 -1
  28. package/dist/src/id/addAutoIds.js +18 -0
  29. package/dist/src/id/addAutoIds.js.map +1 -1
  30. package/dist/src/id/addAutoIds.specs.d.ts +2 -0
  31. package/dist/src/id/addAutoIds.specs.d.ts.map +1 -0
  32. package/dist/src/id/addAutoIds.specs.js +602 -0
  33. package/dist/src/id/addAutoIds.specs.js.map +1 -0
  34. package/dist/src/id/hasAllIds.d.ts.map +1 -1
  35. package/dist/src/id/hasAllIds.js +13 -1
  36. package/dist/src/id/hasAllIds.js.map +1 -1
  37. package/dist/src/id/hasAllIds.specs.d.ts +2 -0
  38. package/dist/src/id/hasAllIds.specs.d.ts.map +1 -0
  39. package/dist/src/id/hasAllIds.specs.js +424 -0
  40. package/dist/src/id/hasAllIds.specs.js.map +1 -0
  41. package/dist/src/model-to-narrative.specs.d.ts +2 -0
  42. package/dist/src/model-to-narrative.specs.d.ts.map +1 -0
  43. package/dist/src/model-to-narrative.specs.js +2437 -0
  44. package/dist/src/model-to-narrative.specs.js.map +1 -0
  45. package/dist/src/narrative-context.specs.d.ts +2 -0
  46. package/dist/src/narrative-context.specs.d.ts.map +1 -0
  47. package/dist/src/narrative-context.specs.js +260 -0
  48. package/dist/src/narrative-context.specs.js.map +1 -0
  49. package/dist/src/schema.d.ts +533 -302
  50. package/dist/src/schema.d.ts.map +1 -1
  51. package/dist/src/schema.js +2 -0
  52. package/dist/src/schema.js.map +1 -1
  53. package/dist/src/transformers/model-to-narrative/generators/flow.d.ts.map +1 -1
  54. package/dist/src/transformers/model-to-narrative/generators/flow.js +10 -5
  55. package/dist/src/transformers/model-to-narrative/generators/flow.js.map +1 -1
  56. package/dist/src/transformers/model-to-narrative/generators/gwt.specs.d.ts +2 -0
  57. package/dist/src/transformers/model-to-narrative/generators/gwt.specs.d.ts.map +1 -0
  58. package/dist/src/transformers/model-to-narrative/generators/gwt.specs.js +142 -0
  59. package/dist/src/transformers/model-to-narrative/generators/gwt.specs.js.map +1 -0
  60. package/dist/src/transformers/narrative-to-model/type-inference.specs.d.ts +2 -0
  61. package/dist/src/transformers/narrative-to-model/type-inference.specs.d.ts.map +1 -0
  62. package/dist/src/transformers/narrative-to-model/type-inference.specs.js +177 -0
  63. package/dist/src/transformers/narrative-to-model/type-inference.specs.js.map +1 -0
  64. package/dist/src/types.d.ts +2 -0
  65. package/dist/src/types.d.ts.map +1 -1
  66. package/dist/tsconfig.tsbuildinfo +1 -1
  67. package/package.json +4 -4
  68. package/src/data-narrative-builders.ts +57 -20
  69. package/src/getNarratives.specs.ts +69 -0
  70. package/src/id/addAutoIds.specs.ts +268 -0
  71. package/src/id/addAutoIds.ts +19 -0
  72. package/src/id/hasAllIds.specs.ts +223 -0
  73. package/src/id/hasAllIds.ts +13 -1
  74. package/src/model-to-narrative.specs.ts +176 -0
  75. package/src/schema.ts +2 -0
  76. package/src/transformers/model-to-narrative/generators/flow.ts +16 -4
  77. package/src/types.ts +2 -0
@@ -1 +1 @@
1
- {"version":3,"file":"hasAllIds.js","sourceRoot":"","sources":["../../../src/id/hasAllIds.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hasAllIds.js","sourceRoot":"","sources":["../../../src/id/hasAllIds.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=hasAllIds.specs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hasAllIds.specs.d.ts","sourceRoot":"","sources":["../../../src/id/hasAllIds.specs.ts"],"names":[],"mappings":""}
@@ -0,0 +1,424 @@
1
+ import { describe, expect, it } from 'vitest';
2
+ import { addAutoIds, hasAllIds } from './index.js';
3
+ describe('hasAllIds', () => {
4
+ const createModelWithoutIds = () => ({
5
+ variant: 'specs',
6
+ narratives: [
7
+ {
8
+ name: 'Test Flow Without IDs',
9
+ slices: [
10
+ {
11
+ type: 'command',
12
+ name: 'Test slice without ID',
13
+ client: { specs: [] },
14
+ server: {
15
+ description: 'Test server',
16
+ specs: [
17
+ {
18
+ type: 'gherkin',
19
+ feature: 'Test specs',
20
+ rules: [
21
+ {
22
+ name: 'Test rule without ID',
23
+ examples: [],
24
+ },
25
+ ],
26
+ },
27
+ ],
28
+ },
29
+ },
30
+ ],
31
+ },
32
+ ],
33
+ messages: [],
34
+ integrations: [],
35
+ });
36
+ const createModelWithIds = () => ({
37
+ variant: 'specs',
38
+ narratives: [
39
+ {
40
+ name: 'Test Flow with IDs',
41
+ id: 'FLOW-001',
42
+ slices: [
43
+ {
44
+ type: 'command',
45
+ name: 'Test slice with ID',
46
+ id: 'SLICE-001',
47
+ client: { specs: [] },
48
+ server: {
49
+ description: 'Test server',
50
+ specs: [
51
+ {
52
+ id: 'SPEC-001',
53
+ type: 'gherkin',
54
+ feature: 'Test specs',
55
+ rules: [
56
+ {
57
+ id: 'RULE-001',
58
+ name: 'Test rule with ID',
59
+ examples: [],
60
+ },
61
+ ],
62
+ },
63
+ ],
64
+ },
65
+ },
66
+ ],
67
+ },
68
+ ],
69
+ messages: [],
70
+ integrations: [],
71
+ });
72
+ const createModelWithFullIds = () => ({
73
+ variant: 'specs',
74
+ narratives: [
75
+ {
76
+ name: 'Test Flow with Full IDs',
77
+ id: 'FLOW-001',
78
+ slices: [
79
+ {
80
+ type: 'command',
81
+ name: 'Test slice with ID',
82
+ id: 'SLICE-001',
83
+ client: { specs: [] },
84
+ server: {
85
+ description: 'Test server',
86
+ specs: [
87
+ {
88
+ id: 'SPEC-001',
89
+ type: 'gherkin',
90
+ feature: 'Test specs',
91
+ rules: [
92
+ {
93
+ id: 'RULE-001',
94
+ name: 'Test rule with ID',
95
+ examples: [
96
+ {
97
+ id: 'EXAMPLE-001',
98
+ name: 'Test example',
99
+ steps: [
100
+ {
101
+ id: 'STEP-001',
102
+ keyword: 'Given',
103
+ text: 'TestState',
104
+ docString: { value: 'test' },
105
+ },
106
+ {
107
+ id: 'STEP-002',
108
+ keyword: 'When',
109
+ text: 'TestCommand',
110
+ },
111
+ {
112
+ id: 'STEP-003',
113
+ keyword: 'Then',
114
+ text: 'TestEvent',
115
+ },
116
+ ],
117
+ },
118
+ ],
119
+ },
120
+ ],
121
+ },
122
+ ],
123
+ },
124
+ },
125
+ ],
126
+ },
127
+ ],
128
+ messages: [],
129
+ integrations: [],
130
+ });
131
+ const createMultipleFlowsModel = (includeAllIds, includeAllSliceIds) => ({
132
+ variant: 'specs',
133
+ narratives: [
134
+ {
135
+ name: 'Home Screen',
136
+ id: 'aifPcU3hw',
137
+ sourceFile: '/path/to/homepage.narrative.ts',
138
+ slices: [
139
+ {
140
+ name: 'Active Surveys Summary',
141
+ id: 'slice1',
142
+ type: 'experience',
143
+ client: { specs: [{ type: 'it', id: 'it1', title: 'show active surveys summary' }] },
144
+ },
145
+ ],
146
+ },
147
+ {
148
+ name: 'Create Survey',
149
+ id: includeAllIds ? 'MPviTMrQC' : undefined,
150
+ sourceFile: '/path/to/homepage.narrative.ts',
151
+ slices: [
152
+ {
153
+ name: 'Create Survey Form',
154
+ id: includeAllSliceIds ? 'slice2' : undefined,
155
+ type: 'experience',
156
+ client: { specs: [{ type: 'it', id: 'it2', title: 'allow entering survey title' }] },
157
+ },
158
+ ],
159
+ },
160
+ {
161
+ name: 'Response Analytics',
162
+ id: 'eME978Euk',
163
+ sourceFile: '/path/to/homepage.narrative.ts',
164
+ slices: [
165
+ {
166
+ name: 'Response Rate Charts',
167
+ id: 'slice3',
168
+ type: 'experience',
169
+ client: { specs: [{ type: 'it', id: 'it3', title: 'show daily response rate charts' }] },
170
+ },
171
+ ],
172
+ },
173
+ ],
174
+ messages: [],
175
+ integrations: [],
176
+ });
177
+ it('should return false for models without IDs', () => {
178
+ const model = createModelWithoutIds();
179
+ expect(hasAllIds(model)).toBe(false);
180
+ });
181
+ it('should return true for models with complete IDs', () => {
182
+ const model = createModelWithoutIds();
183
+ const modelWithIds = addAutoIds(model);
184
+ expect(hasAllIds(modelWithIds)).toBe(true);
185
+ });
186
+ it('should return true for flows that already have IDs', () => {
187
+ const model = createModelWithIds();
188
+ expect(hasAllIds(model)).toBe(true);
189
+ });
190
+ it('should return false if any slice is missing an ID', () => {
191
+ const model = createModelWithIds();
192
+ const modifiedModel = structuredClone(model);
193
+ modifiedModel.narratives[0].slices[0].id = '';
194
+ expect(hasAllIds(modifiedModel)).toBe(false);
195
+ });
196
+ it('should return false if any rule is missing an ID', () => {
197
+ const model = createModelWithIds();
198
+ const modifiedModel = structuredClone(model);
199
+ const slice = modifiedModel.narratives[0].slices[0];
200
+ if ('server' in slice && slice.server?.specs !== undefined && Array.isArray(slice.server.specs)) {
201
+ slice.server.specs[0].rules[0].id = '';
202
+ }
203
+ expect(hasAllIds(modifiedModel)).toBe(false);
204
+ });
205
+ it('should return true when multiple flows with same sourceFile all have IDs', () => {
206
+ const model = createMultipleFlowsModel(true, true);
207
+ expect(hasAllIds(model)).toBe(true);
208
+ });
209
+ it('should return false when any flow in multiple flows with same sourceFile is missing ID', () => {
210
+ const model = createMultipleFlowsModel(false, true);
211
+ expect(hasAllIds(model)).toBe(false);
212
+ });
213
+ it('should return false when any slice in multiple flows with same sourceFile is missing ID', () => {
214
+ const model = createMultipleFlowsModel(true, false);
215
+ expect(hasAllIds(model)).toBe(false);
216
+ });
217
+ it('should return false if any spec is missing an ID', () => {
218
+ const model = createModelWithFullIds();
219
+ const modifiedModel = structuredClone(model);
220
+ const slice = modifiedModel.narratives[0].slices[0];
221
+ if ('server' in slice && slice.server?.specs !== undefined && Array.isArray(slice.server.specs)) {
222
+ slice.server.specs[0].id = '';
223
+ }
224
+ expect(hasAllIds(modifiedModel)).toBe(false);
225
+ });
226
+ it('should return false if any example is missing an ID', () => {
227
+ const model = createModelWithFullIds();
228
+ const modifiedModel = structuredClone(model);
229
+ const slice = modifiedModel.narratives[0].slices[0];
230
+ if ('server' in slice && slice.server?.specs !== undefined && Array.isArray(slice.server.specs)) {
231
+ slice.server.specs[0].rules[0].examples[0].id = '';
232
+ }
233
+ expect(hasAllIds(modifiedModel)).toBe(false);
234
+ });
235
+ it('should return false if any step is missing an ID', () => {
236
+ const model = createModelWithFullIds();
237
+ const modifiedModel = structuredClone(model);
238
+ const slice = modifiedModel.narratives[0].slices[0];
239
+ if ('server' in slice && slice.server?.specs !== undefined && Array.isArray(slice.server.specs)) {
240
+ slice.server.specs[0].rules[0].examples[0].steps[0].id = '';
241
+ }
242
+ expect(hasAllIds(modifiedModel)).toBe(false);
243
+ });
244
+ it('should return false if step with error is missing an ID', () => {
245
+ const model = {
246
+ variant: 'specs',
247
+ narratives: [
248
+ {
249
+ name: 'Test Flow',
250
+ id: 'FLOW-001',
251
+ slices: [
252
+ {
253
+ type: 'command',
254
+ name: 'Test slice',
255
+ id: 'SLICE-001',
256
+ client: { specs: [] },
257
+ server: {
258
+ description: 'Test server',
259
+ specs: [
260
+ {
261
+ id: 'SPEC-001',
262
+ type: 'gherkin',
263
+ feature: 'Test specs',
264
+ rules: [
265
+ {
266
+ id: 'RULE-001',
267
+ name: 'Test rule',
268
+ examples: [
269
+ {
270
+ id: 'EXAMPLE-001',
271
+ name: 'Error example',
272
+ steps: [
273
+ {
274
+ id: 'STEP-001',
275
+ keyword: 'Given',
276
+ text: 'TestState',
277
+ },
278
+ {
279
+ keyword: 'Then',
280
+ error: { type: 'ValidationError', message: 'Invalid input' },
281
+ },
282
+ ],
283
+ },
284
+ ],
285
+ },
286
+ ],
287
+ },
288
+ ],
289
+ },
290
+ },
291
+ ],
292
+ },
293
+ ],
294
+ messages: [],
295
+ integrations: [],
296
+ };
297
+ expect(hasAllIds(model)).toBe(false);
298
+ });
299
+ it('should return false if client it spec is missing an ID', () => {
300
+ const model = {
301
+ variant: 'specs',
302
+ narratives: [
303
+ {
304
+ name: 'Test Flow',
305
+ id: 'FLOW-001',
306
+ slices: [
307
+ {
308
+ name: 'Test slice',
309
+ id: 'SLICE-001',
310
+ type: 'experience',
311
+ client: {
312
+ specs: [{ type: 'it', title: 'test without id' }],
313
+ },
314
+ },
315
+ ],
316
+ },
317
+ ],
318
+ messages: [],
319
+ integrations: [],
320
+ };
321
+ expect(hasAllIds(model)).toBe(false);
322
+ });
323
+ it('should return false if client describe spec is missing an ID', () => {
324
+ const model = {
325
+ variant: 'specs',
326
+ narratives: [
327
+ {
328
+ name: 'Test Flow',
329
+ id: 'FLOW-001',
330
+ slices: [
331
+ {
332
+ name: 'Test slice',
333
+ id: 'SLICE-001',
334
+ type: 'experience',
335
+ client: {
336
+ specs: [
337
+ {
338
+ type: 'describe',
339
+ title: 'test describe without id',
340
+ children: [{ type: 'it', id: 'IT-001', title: 'nested it with id' }],
341
+ },
342
+ ],
343
+ },
344
+ },
345
+ ],
346
+ },
347
+ ],
348
+ messages: [],
349
+ integrations: [],
350
+ };
351
+ expect(hasAllIds(model)).toBe(false);
352
+ });
353
+ it('should return false if nested client it spec is missing an ID', () => {
354
+ const model = {
355
+ variant: 'specs',
356
+ narratives: [
357
+ {
358
+ name: 'Test Flow',
359
+ id: 'FLOW-001',
360
+ slices: [
361
+ {
362
+ name: 'Test slice',
363
+ id: 'SLICE-001',
364
+ type: 'experience',
365
+ client: {
366
+ specs: [
367
+ {
368
+ type: 'describe',
369
+ id: 'DESC-001',
370
+ title: 'test describe with id',
371
+ children: [{ type: 'it', title: 'nested it without id' }],
372
+ },
373
+ ],
374
+ },
375
+ },
376
+ ],
377
+ },
378
+ ],
379
+ messages: [],
380
+ integrations: [],
381
+ };
382
+ expect(hasAllIds(model)).toBe(false);
383
+ });
384
+ it('should return true for client specs with all IDs', () => {
385
+ const model = {
386
+ variant: 'specs',
387
+ narratives: [
388
+ {
389
+ name: 'Test Flow',
390
+ id: 'FLOW-001',
391
+ slices: [
392
+ {
393
+ name: 'Test slice',
394
+ id: 'SLICE-001',
395
+ type: 'experience',
396
+ client: {
397
+ specs: [
398
+ {
399
+ type: 'describe',
400
+ id: 'DESC-001',
401
+ title: 'test describe',
402
+ children: [
403
+ { type: 'it', id: 'IT-001', title: 'first it' },
404
+ {
405
+ type: 'describe',
406
+ id: 'DESC-002',
407
+ title: 'nested describe',
408
+ children: [{ type: 'it', id: 'IT-002', title: 'nested it' }],
409
+ },
410
+ ],
411
+ },
412
+ ],
413
+ },
414
+ },
415
+ ],
416
+ },
417
+ ],
418
+ messages: [],
419
+ integrations: [],
420
+ };
421
+ expect(hasAllIds(model)).toBe(true);
422
+ });
423
+ });
424
+ //# sourceMappingURL=hasAllIds.specs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hasAllIds.specs.js","sourceRoot":"","sources":["../../../src/id/hasAllIds.specs.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=model-to-narrative.specs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model-to-narrative.specs.d.ts","sourceRoot":"","sources":["../../src/model-to-narrative.specs.ts"],"names":[],"mappings":""}