@auto-engineer/narrative 0.13.1 → 0.13.2

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.
@@ -49,6 +49,7 @@ describe('hasAllIds', () => {
49
49
  description: 'Test server',
50
50
  specs: [
51
51
  {
52
+ id: 'SPEC-001',
52
53
  type: 'gherkin',
53
54
  feature: 'Test specs',
54
55
  rules: [
@@ -68,6 +69,65 @@ describe('hasAllIds', () => {
68
69
  messages: [],
69
70
  integrations: [],
70
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
+ });
71
131
  const createMultipleFlowsModel = (includeAllIds, includeAllSliceIds) => ({
72
132
  variant: 'specs',
73
133
  narratives: [
@@ -80,7 +140,7 @@ describe('hasAllIds', () => {
80
140
  name: 'Active Surveys Summary',
81
141
  id: 'slice1',
82
142
  type: 'experience',
83
- client: { specs: [{ type: 'it', title: 'show active surveys summary' }] },
143
+ client: { specs: [{ type: 'it', id: 'it1', title: 'show active surveys summary' }] },
84
144
  },
85
145
  ],
86
146
  },
@@ -93,7 +153,7 @@ describe('hasAllIds', () => {
93
153
  name: 'Create Survey Form',
94
154
  id: includeAllSliceIds ? 'slice2' : undefined,
95
155
  type: 'experience',
96
- client: { specs: [{ type: 'it', title: 'allow entering survey title' }] },
156
+ client: { specs: [{ type: 'it', id: 'it2', title: 'allow entering survey title' }] },
97
157
  },
98
158
  ],
99
159
  },
@@ -106,7 +166,7 @@ describe('hasAllIds', () => {
106
166
  name: 'Response Rate Charts',
107
167
  id: 'slice3',
108
168
  type: 'experience',
109
- client: { specs: [{ type: 'it', title: 'show daily response rate charts' }] },
169
+ client: { specs: [{ type: 'it', id: 'it3', title: 'show daily response rate charts' }] },
110
170
  },
111
171
  ],
112
172
  },
@@ -154,5 +214,211 @@ describe('hasAllIds', () => {
154
214
  const model = createMultipleFlowsModel(true, false);
155
215
  expect(hasAllIds(model)).toBe(false);
156
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
+ });
157
423
  });
158
424
  //# sourceMappingURL=hasAllIds.specs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"hasAllIds.specs.js","sourceRoot":"","sources":["../../../src/id/hasAllIds.specs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hasAllIds.specs.js","sourceRoot":"","sources":["../../../src/id/hasAllIds.specs.ts"],"names":[],"mappings":"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"}