@auto-engineer/narrative 1.138.0 → 1.140.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.
- package/.turbo/turbo-build.log +1 -1
- package/.turbo/turbo-test.log +5 -5
- package/.turbo/turbo-type-check.log +1 -1
- package/CHANGELOG.md +41 -0
- package/dist/scripts/convert-flow-exec.js +2 -2
- package/dist/scripts/convert-flow-exec.js.map +1 -1
- package/dist/scripts/print-schema.js +5 -5
- package/dist/scripts/print-schema.js.map +1 -1
- package/dist/src/fluent-builder.d.ts +29 -29
- package/dist/src/fluent-builder.d.ts.map +1 -1
- package/dist/src/fluent-builder.js +81 -81
- package/dist/src/fluent-builder.js.map +1 -1
- package/dist/src/{getNarratives.d.ts → getScenes.d.ts} +6 -6
- package/dist/src/getScenes.d.ts.map +1 -0
- package/dist/src/{getNarratives.js → getScenes.js} +16 -16
- package/dist/src/getScenes.js.map +1 -0
- package/dist/src/id/addAutoIds.d.ts.map +1 -1
- package/dist/src/id/addAutoIds.js +22 -22
- package/dist/src/id/addAutoIds.js.map +1 -1
- package/dist/src/id/hasAllIds.d.ts.map +1 -1
- package/dist/src/id/hasAllIds.js +2 -2
- package/dist/src/id/hasAllIds.js.map +1 -1
- package/dist/src/index.d.ts +8 -8
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +4 -4
- package/dist/src/index.js.map +1 -1
- package/dist/src/loader/index.js +1 -1
- package/dist/src/loader/index.js.map +1 -1
- package/dist/src/loader/runtime-cjs.js +1 -1
- package/dist/src/loader/runtime-cjs.js.map +1 -1
- package/dist/src/narrative-context.d.ts +9 -9
- package/dist/src/narrative-context.d.ts.map +1 -1
- package/dist/src/narrative-context.js +47 -47
- package/dist/src/narrative-context.js.map +1 -1
- package/dist/src/narrative-registry.d.ts +6 -6
- package/dist/src/narrative-registry.d.ts.map +1 -1
- package/dist/src/narrative-registry.js +26 -26
- package/dist/src/narrative-registry.js.map +1 -1
- package/dist/src/narrative.d.ts +5 -5
- package/dist/src/narrative.d.ts.map +1 -1
- package/dist/src/narrative.js +26 -27
- package/dist/src/narrative.js.map +1 -1
- package/dist/src/parse-graphql-request.d.ts +1 -1
- package/dist/src/parse-graphql-request.d.ts.map +1 -1
- package/dist/src/parse-graphql-request.js +3 -3
- package/dist/src/parse-graphql-request.js.map +1 -1
- package/dist/src/samples/items.narrative.js +2 -2
- package/dist/src/samples/items.narrative.js.map +1 -1
- package/dist/src/samples/mixed-given-types.narrative.js +2 -2
- package/dist/src/samples/mixed-given-types.narrative.js.map +1 -1
- package/dist/src/samples/place-order.narrative.js +2 -2
- package/dist/src/samples/place-order.narrative.js.map +1 -1
- package/dist/src/samples/questionnaires.narrative.js +2 -2
- package/dist/src/samples/questionnaires.narrative.js.map +1 -1
- package/dist/src/samples/seasonal-assistant.schema.json +2 -2
- package/dist/src/samples/test-with-ids.narrative.js +2 -2
- package/dist/src/samples/test-with-ids.narrative.js.map +1 -1
- package/dist/src/schema.d.ts +136 -136
- package/dist/src/schema.d.ts.map +1 -1
- package/dist/src/schema.js +76 -76
- package/dist/src/schema.js.map +1 -1
- package/dist/src/slice-builder.d.ts +6 -6
- package/dist/src/slice-builder.d.ts.map +1 -1
- package/dist/src/slice-builder.js +21 -21
- package/dist/src/slice-builder.js.map +1 -1
- package/dist/src/transformers/model-to-narrative/analysis/lint-helpers.js +1 -1
- package/dist/src/transformers/model-to-narrative/analysis/lint-helpers.js.map +1 -1
- package/dist/src/transformers/model-to-narrative/cross-module-imports.js +4 -4
- package/dist/src/transformers/model-to-narrative/cross-module-imports.js.map +1 -1
- package/dist/src/transformers/model-to-narrative/generators/compose.js +3 -3
- package/dist/src/transformers/model-to-narrative/generators/compose.js.map +1 -1
- package/dist/src/transformers/model-to-narrative/generators/flow.d.ts +2 -2
- package/dist/src/transformers/model-to-narrative/generators/flow.d.ts.map +1 -1
- package/dist/src/transformers/model-to-narrative/generators/flow.js +20 -20
- package/dist/src/transformers/model-to-narrative/generators/flow.js.map +1 -1
- package/dist/src/transformers/model-to-narrative/generators/imports.d.ts +1 -1
- package/dist/src/transformers/model-to-narrative/generators/imports.d.ts.map +1 -1
- package/dist/src/transformers/model-to-narrative/generators/imports.js +1 -1
- package/dist/src/transformers/model-to-narrative/generators/imports.js.map +1 -1
- package/dist/src/transformers/model-to-narrative/generators/module-code.js +14 -14
- package/dist/src/transformers/model-to-narrative/generators/module-code.js.map +1 -1
- package/dist/src/transformers/model-to-narrative/index.d.ts +4 -4
- package/dist/src/transformers/model-to-narrative/index.d.ts.map +1 -1
- package/dist/src/transformers/model-to-narrative/index.js +1 -1
- package/dist/src/transformers/model-to-narrative/spec-traversal.d.ts +2 -2
- package/dist/src/transformers/model-to-narrative/spec-traversal.d.ts.map +1 -1
- package/dist/src/transformers/model-to-narrative/spec-traversal.js +5 -5
- package/dist/src/transformers/model-to-narrative/spec-traversal.js.map +1 -1
- package/dist/src/transformers/model-to-narrative/types.d.ts +1 -1
- package/dist/src/transformers/model-to-narrative/types.d.ts.map +1 -1
- package/dist/src/transformers/model-to-narrative/utils/integration-extractor.d.ts +1 -1
- package/dist/src/transformers/model-to-narrative/utils/integration-extractor.d.ts.map +1 -1
- package/dist/src/transformers/model-to-narrative/utils/integration-extractor.js +4 -4
- package/dist/src/transformers/model-to-narrative/utils/integration-extractor.js.map +1 -1
- package/dist/src/transformers/model-to-narrative/validate-modules.d.ts +1 -1
- package/dist/src/transformers/model-to-narrative/validate-modules.d.ts.map +1 -1
- package/dist/src/transformers/model-to-narrative/validate-modules.js +19 -19
- package/dist/src/transformers/model-to-narrative/validate-modules.js.map +1 -1
- package/dist/src/transformers/narrative-to-model/assemble.d.ts +2 -2
- package/dist/src/transformers/narrative-to-model/assemble.d.ts.map +1 -1
- package/dist/src/transformers/narrative-to-model/assemble.js +10 -3
- package/dist/src/transformers/narrative-to-model/assemble.js.map +1 -1
- package/dist/src/transformers/narrative-to-model/debug.d.ts.map +1 -1
- package/dist/src/transformers/narrative-to-model/debug.js +1 -1
- package/dist/src/transformers/narrative-to-model/debug.js.map +1 -1
- package/dist/src/transformers/narrative-to-model/derive-modules.d.ts +2 -2
- package/dist/src/transformers/narrative-to-model/derive-modules.d.ts.map +1 -1
- package/dist/src/transformers/narrative-to-model/derive-modules.js +9 -9
- package/dist/src/transformers/narrative-to-model/derive-modules.js.map +1 -1
- package/dist/src/transformers/narrative-to-model/index.d.ts +2 -2
- package/dist/src/transformers/narrative-to-model/index.d.ts.map +1 -1
- package/dist/src/transformers/narrative-to-model/index.js +39 -39
- package/dist/src/transformers/narrative-to-model/index.js.map +1 -1
- package/dist/src/transformers/narrative-to-model/spec-processors.js +1 -1
- package/dist/src/transformers/narrative-to-model/spec-processors.js.map +1 -1
- package/dist/src/transformers/narrative-to-model/strings.d.ts +1 -1
- package/dist/src/transformers/narrative-to-model/strings.d.ts.map +1 -1
- package/dist/src/transformers/narrative-to-model/strings.js +6 -6
- package/dist/src/transformers/narrative-to-model/strings.js.map +1 -1
- package/dist/src/validate-slice-requests.d.ts +4 -4
- package/dist/src/validate-slice-requests.d.ts.map +1 -1
- package/dist/src/validate-slice-requests.js +34 -34
- package/dist/src/validate-slice-requests.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +4 -4
- package/scripts/convert-flow-exec.ts +2 -2
- package/scripts/print-schema.ts +8 -8
- package/src/fluent-builder.specs.ts +3 -3
- package/src/fluent-builder.ts +141 -141
- package/src/{getNarratives.cache.specs.ts → getScenes.cache.specs.ts} +45 -45
- package/src/{getNarratives.specs.ts → getScenes.specs.ts} +302 -300
- package/src/{getNarratives.ts → getScenes.ts} +20 -20
- package/src/id/addAutoIds.specs.ts +105 -105
- package/src/id/addAutoIds.ts +26 -26
- package/src/id/hasAllIds.specs.ts +59 -59
- package/src/id/hasAllIds.ts +6 -6
- package/src/index.ts +12 -13
- package/src/loader/index.ts +1 -1
- package/src/loader/runtime-cjs.ts +1 -1
- package/src/model-to-narrative.specs.ts +133 -135
- package/src/narrative-context.specs.ts +24 -24
- package/src/narrative-context.ts +61 -61
- package/src/narrative-registry.ts +31 -31
- package/src/narrative.ts +31 -33
- package/src/parse-graphql-request.specs.ts +5 -5
- package/src/parse-graphql-request.ts +3 -3
- package/src/samples/items.narrative.ts +2 -2
- package/src/samples/mixed-given-types.narrative.ts +2 -2
- package/src/samples/place-order.narrative.ts +2 -2
- package/src/samples/questionnaires.narrative.ts +2 -2
- package/src/samples/seasonal-assistant.schema.json +2 -2
- package/src/samples/test-with-ids.narrative.ts +2 -2
- package/src/schema.specs.ts +99 -91
- package/src/schema.ts +89 -89
- package/src/slice-builder.ts +30 -30
- package/src/transformers/model-to-narrative/analysis/lint-helpers.ts +1 -1
- package/src/transformers/model-to-narrative/cross-module-imports.specs.ts +43 -43
- package/src/transformers/model-to-narrative/cross-module-imports.ts +4 -4
- package/src/transformers/model-to-narrative/generators/compose.ts +4 -4
- package/src/transformers/model-to-narrative/generators/flow.ts +36 -36
- package/src/transformers/model-to-narrative/generators/imports.ts +1 -1
- package/src/transformers/model-to-narrative/generators/module-code.ts +15 -15
- package/src/transformers/model-to-narrative/index.ts +4 -4
- package/src/transformers/model-to-narrative/modules.specs.ts +58 -58
- package/src/transformers/model-to-narrative/spec-traversal.specs.ts +43 -43
- package/src/transformers/model-to-narrative/spec-traversal.ts +6 -6
- package/src/transformers/model-to-narrative/types.ts +1 -1
- package/src/transformers/model-to-narrative/utils/integration-extractor.ts +5 -5
- package/src/transformers/model-to-narrative/validate-modules.ts +22 -22
- package/src/transformers/narrative-to-model/assemble.ts +12 -4
- package/src/transformers/narrative-to-model/debug.ts +1 -1
- package/src/transformers/narrative-to-model/derive-modules.specs.ts +35 -35
- package/src/transformers/narrative-to-model/derive-modules.ts +11 -11
- package/src/transformers/narrative-to-model/index.ts +47 -47
- package/src/transformers/narrative-to-model/spec-processors.ts +1 -1
- package/src/transformers/narrative-to-model/strings.ts +6 -6
- package/src/transformers/narrative-to-model/type-inference.specs.ts +11 -11
- package/src/validate-slice-requests.specs.ts +113 -113
- package/src/validate-slice-requests.ts +49 -49
- package/dist/src/getNarratives.d.ts.map +0 -1
- package/dist/src/getNarratives.js.map +0 -1
package/src/narrative.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import createDebug from 'debug';
|
|
2
2
|
import type { DataTargetItem } from './data-narrative-builders';
|
|
3
3
|
import {
|
|
4
|
-
|
|
4
|
+
clearCurrentScene,
|
|
5
5
|
endClientBlock,
|
|
6
6
|
endServerBlock,
|
|
7
|
-
|
|
7
|
+
getCurrentMoment,
|
|
8
8
|
popDescribe,
|
|
9
9
|
pushDescribe,
|
|
10
10
|
pushSpec,
|
|
@@ -13,9 +13,9 @@ import {
|
|
|
13
13
|
recordIt,
|
|
14
14
|
recordRule,
|
|
15
15
|
recordStep,
|
|
16
|
-
|
|
16
|
+
setMomentData,
|
|
17
17
|
startClientBlock,
|
|
18
|
-
|
|
18
|
+
startScene,
|
|
19
19
|
startServerBlock,
|
|
20
20
|
} from './narrative-context';
|
|
21
21
|
import { registry } from './narrative-registry';
|
|
@@ -26,35 +26,35 @@ if ('color' in debug && typeof debug === 'object') {
|
|
|
26
26
|
(debug as { color: string }).color = '6';
|
|
27
27
|
}
|
|
28
28
|
|
|
29
|
-
export function
|
|
30
|
-
export function
|
|
31
|
-
export function
|
|
29
|
+
export function scene(name: string, fn: () => void): void;
|
|
30
|
+
export function scene(name: string, id: string, fn: () => void): void;
|
|
31
|
+
export function scene(name: string, idOrFn: string | (() => void), fn?: () => void): void {
|
|
32
32
|
const id = typeof idOrFn === 'string' ? idOrFn : undefined;
|
|
33
33
|
const callback = typeof idOrFn === 'function' ? idOrFn : fn!;
|
|
34
34
|
|
|
35
|
-
debug('Starting
|
|
36
|
-
const
|
|
37
|
-
debug('Executing
|
|
35
|
+
debug('Starting scene definition: %s', name);
|
|
36
|
+
const sceneObj = startScene(name, id);
|
|
37
|
+
debug('Executing scene function for: %s', name);
|
|
38
38
|
callback();
|
|
39
|
-
debug('
|
|
40
|
-
registry.register(
|
|
41
|
-
|
|
42
|
-
debug('
|
|
39
|
+
debug('Scene function executed, registering scene: %s with %d moments', name, sceneObj.moments.length);
|
|
40
|
+
registry.register(sceneObj);
|
|
41
|
+
clearCurrentScene();
|
|
42
|
+
debug('Scene registered and context cleared: %s', name);
|
|
43
43
|
}
|
|
44
44
|
|
|
45
45
|
export const client = (fn: () => void) => {
|
|
46
|
-
const
|
|
47
|
-
if (
|
|
48
|
-
startClientBlock(
|
|
46
|
+
const moment = getCurrentMoment();
|
|
47
|
+
if (moment) {
|
|
48
|
+
startClientBlock(moment);
|
|
49
49
|
fn();
|
|
50
50
|
endClientBlock();
|
|
51
51
|
}
|
|
52
52
|
};
|
|
53
53
|
|
|
54
54
|
export const server = (fn: () => void) => {
|
|
55
|
-
const
|
|
56
|
-
if (
|
|
57
|
-
startServerBlock(
|
|
55
|
+
const moment = getCurrentMoment();
|
|
56
|
+
if (moment) {
|
|
57
|
+
startServerBlock(moment, '');
|
|
58
58
|
fn();
|
|
59
59
|
endServerBlock();
|
|
60
60
|
}
|
|
@@ -69,8 +69,8 @@ export function describe(title: string, fn: () => void): void;
|
|
|
69
69
|
export function describe(title: string, id: string, fn: () => void): void;
|
|
70
70
|
export function describe(titleOrFn: string | (() => void), idOrFn?: string | (() => void), fn?: () => void): void {
|
|
71
71
|
if (typeof titleOrFn === 'function') {
|
|
72
|
-
const
|
|
73
|
-
const inferredTitle =
|
|
72
|
+
const moment = getCurrentMoment();
|
|
73
|
+
const inferredTitle = moment?.name ?? '';
|
|
74
74
|
pushDescribe(inferredTitle, undefined);
|
|
75
75
|
titleOrFn();
|
|
76
76
|
popDescribe();
|
|
@@ -205,34 +205,32 @@ export function thenError(errorType: ErrorType, message?: string): void {
|
|
|
205
205
|
recordErrorStep(errorType, message);
|
|
206
206
|
}
|
|
207
207
|
|
|
208
|
-
export const
|
|
208
|
+
export const MomentType = {
|
|
209
209
|
COMMAND: 'command' as const,
|
|
210
210
|
QUERY: 'query' as const,
|
|
211
211
|
REACT: 'react' as const,
|
|
212
212
|
} as const;
|
|
213
213
|
|
|
214
|
-
export interface
|
|
214
|
+
export interface MomentTypeValueInterface {
|
|
215
215
|
readonly value: 'command' | 'query' | 'react';
|
|
216
216
|
}
|
|
217
217
|
|
|
218
218
|
export function data(config: Data | (DataItem | DataTargetItem)[]): void {
|
|
219
|
-
const
|
|
220
|
-
if (!
|
|
219
|
+
const moment = getCurrentMoment();
|
|
220
|
+
if (!moment) throw new Error('No active moment for data configuration');
|
|
221
221
|
|
|
222
222
|
// Normalize to Data structure - cast needed since DataItem includes __type discriminator
|
|
223
|
-
// which gets stripped by
|
|
223
|
+
// which gets stripped by setMomentData
|
|
224
224
|
const dataConfig: Data = Array.isArray(config) ? { items: config as unknown as Data['items'] } : config;
|
|
225
225
|
|
|
226
|
-
const
|
|
226
|
+
const momentType = moment.type;
|
|
227
227
|
|
|
228
|
-
if (
|
|
228
|
+
if (momentType === MomentType.QUERY) {
|
|
229
229
|
const hasSink = dataConfig.items.some((item) => '__type' in item && item.__type === 'sink');
|
|
230
230
|
if (hasSink) {
|
|
231
|
-
throw new Error('Query
|
|
231
|
+
throw new Error('Query moments cannot have data sinks, only sources');
|
|
232
232
|
}
|
|
233
233
|
}
|
|
234
234
|
|
|
235
|
-
|
|
235
|
+
setMomentData(dataConfig);
|
|
236
236
|
}
|
|
237
|
-
|
|
238
|
-
export { narrative as flow };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { describe, expect, it } from 'vitest';
|
|
2
|
-
import { parseGraphQlRequest,
|
|
2
|
+
import { parseGraphQlRequest, parseMomentRequest } from './parse-graphql-request';
|
|
3
3
|
|
|
4
4
|
describe('parseGraphQlRequest', () => {
|
|
5
5
|
it('parses a query operation', () => {
|
|
@@ -63,23 +63,23 @@ describe('parseGraphQlRequest', () => {
|
|
|
63
63
|
});
|
|
64
64
|
});
|
|
65
65
|
|
|
66
|
-
describe('
|
|
66
|
+
describe('parseMomentRequest', () => {
|
|
67
67
|
it('returns parsed operation when request is present', () => {
|
|
68
68
|
const slice = {
|
|
69
69
|
request: `query GetItems { items { id } }`,
|
|
70
70
|
};
|
|
71
71
|
|
|
72
|
-
expect(
|
|
72
|
+
expect(parseMomentRequest(slice)).toEqual({
|
|
73
73
|
operationName: 'items',
|
|
74
74
|
args: [],
|
|
75
75
|
});
|
|
76
76
|
});
|
|
77
77
|
|
|
78
78
|
it('returns undefined when request is absent', () => {
|
|
79
|
-
expect(
|
|
79
|
+
expect(parseMomentRequest({})).toEqual(undefined);
|
|
80
80
|
});
|
|
81
81
|
|
|
82
82
|
it('returns undefined when request is undefined', () => {
|
|
83
|
-
expect(
|
|
83
|
+
expect(parseMomentRequest({ request: undefined })).toEqual(undefined);
|
|
84
84
|
});
|
|
85
85
|
});
|
|
@@ -91,10 +91,10 @@ export function parseGraphQlRequest(request: string): ParsedGraphQlOperation {
|
|
|
91
91
|
};
|
|
92
92
|
}
|
|
93
93
|
|
|
94
|
-
export function
|
|
94
|
+
export function parseMomentRequest(moment: {
|
|
95
95
|
request?: string;
|
|
96
96
|
[key: string]: unknown;
|
|
97
97
|
}): ParsedGraphQlOperation | undefined {
|
|
98
|
-
if (
|
|
99
|
-
return parseGraphQlRequest(
|
|
98
|
+
if (moment.request == null) return undefined;
|
|
99
|
+
return parseGraphQlRequest(moment.request);
|
|
100
100
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import gql from 'graphql-tag';
|
|
2
2
|
import { source } from '../data-narrative-builders';
|
|
3
3
|
import { command, query } from '../fluent-builder';
|
|
4
|
-
import { data, describe, example,
|
|
4
|
+
import { data, describe, example, it, rule, scene, specs } from '../narrative';
|
|
5
5
|
import type { Command, Event, State } from '../types';
|
|
6
6
|
|
|
7
7
|
type ItemCreated = Event<
|
|
@@ -29,7 +29,7 @@ type AvailableItems = State<
|
|
|
29
29
|
}
|
|
30
30
|
>;
|
|
31
31
|
|
|
32
|
-
|
|
32
|
+
scene('items', () => {
|
|
33
33
|
command('Create item')
|
|
34
34
|
.stream('item-${id}')
|
|
35
35
|
.client(() => {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { query } from '../fluent-builder';
|
|
2
|
-
import { example,
|
|
2
|
+
import { example, rule, scene, specs } from '../narrative';
|
|
3
3
|
import type { Event, State } from '../types';
|
|
4
4
|
|
|
5
5
|
type ConfigState = State<
|
|
@@ -35,7 +35,7 @@ type SystemStatus = State<
|
|
|
35
35
|
}
|
|
36
36
|
>;
|
|
37
37
|
|
|
38
|
-
|
|
38
|
+
scene('Mixed Given Types', 'FLOW-MGT', () => {
|
|
39
39
|
query('system status check', 'SLICE-MGT-001')
|
|
40
40
|
.client(() => {})
|
|
41
41
|
.server(() => {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { command } from '../fluent-builder';
|
|
2
|
-
import { describe, example,
|
|
2
|
+
import { describe, example, it, rule, scene, specs } from '../narrative';
|
|
3
3
|
|
|
4
4
|
export interface OrderPlaced {
|
|
5
5
|
type: 'OrderPlaced';
|
|
@@ -28,7 +28,7 @@ export interface OrderSummary {
|
|
|
28
28
|
};
|
|
29
29
|
}
|
|
30
30
|
|
|
31
|
-
|
|
31
|
+
scene('Place order', () => {
|
|
32
32
|
command('Submit order')
|
|
33
33
|
.stream('order-${orderId}')
|
|
34
34
|
.client(() => {
|
|
@@ -6,12 +6,12 @@ import {
|
|
|
6
6
|
type Event,
|
|
7
7
|
example,
|
|
8
8
|
experience,
|
|
9
|
-
flow,
|
|
10
9
|
gql,
|
|
11
10
|
it,
|
|
12
11
|
query,
|
|
13
12
|
rule,
|
|
14
13
|
type State,
|
|
14
|
+
scene,
|
|
15
15
|
sink,
|
|
16
16
|
source,
|
|
17
17
|
specs,
|
|
@@ -95,7 +95,7 @@ type QuestionnaireProgress = State<
|
|
|
95
95
|
}
|
|
96
96
|
>;
|
|
97
97
|
|
|
98
|
-
|
|
98
|
+
scene('Questionnaires', 'Q9m2Kp4Lx', () => {
|
|
99
99
|
experience('Homepage', 'H1a4Bn6Cy').client(() => {
|
|
100
100
|
it('show a hero section with a welcome message');
|
|
101
101
|
it('allow user to start the questionnaire');
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { command, query, react } from '../fluent-builder';
|
|
2
|
-
import { example,
|
|
2
|
+
import { example, rule, scene, specs, thenError } from '../narrative';
|
|
3
3
|
import type { Command, Event, State } from '../types';
|
|
4
4
|
|
|
5
5
|
type TestItemCreated = Event<
|
|
@@ -35,7 +35,7 @@ type SendNotification = Event<
|
|
|
35
35
|
}
|
|
36
36
|
>;
|
|
37
37
|
|
|
38
|
-
|
|
38
|
+
scene('Test Flow with IDs', 'FLOW-001', () => {
|
|
39
39
|
command('Create test item', 'SLICE-001')
|
|
40
40
|
.client(() => {})
|
|
41
41
|
.server(() => {
|