@auto-engineer/narrative 1.139.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 +18 -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
|
@@ -3,7 +3,7 @@ import gql from 'graphql-tag';
|
|
|
3
3
|
import { beforeEach, describe, expect, it } from 'vitest';
|
|
4
4
|
import * as dataBuilders from './data-narrative-builders';
|
|
5
5
|
import * as fluent from './fluent-builder';
|
|
6
|
-
import {
|
|
6
|
+
import { clearGetScenesCache, getScenes } from './getScenes';
|
|
7
7
|
import * as flowApi from './narrative';
|
|
8
8
|
import * as typesApi from './types';
|
|
9
9
|
|
|
@@ -17,13 +17,13 @@ const importMap = {
|
|
|
17
17
|
|
|
18
18
|
const pattern = /\.(narrative)\.(ts)$/;
|
|
19
19
|
|
|
20
|
-
describe('
|
|
20
|
+
describe('getScenes caching', { timeout: 30_000 }, () => {
|
|
21
21
|
let vfs: IFileStore;
|
|
22
22
|
const root = '/test';
|
|
23
23
|
|
|
24
24
|
beforeEach(() => {
|
|
25
25
|
vfs = new InMemoryFileStore();
|
|
26
|
-
|
|
26
|
+
clearGetScenesCache();
|
|
27
27
|
});
|
|
28
28
|
|
|
29
29
|
it('should rebuild cache when a helper file is modified', async () => {
|
|
@@ -33,10 +33,10 @@ describe('getNarratives caching', { timeout: 30_000 }, () => {
|
|
|
33
33
|
}
|
|
34
34
|
`;
|
|
35
35
|
const flowContent = `
|
|
36
|
-
import {
|
|
36
|
+
import { scene } from '../narrative';
|
|
37
37
|
import { formatName } from './helper';
|
|
38
38
|
|
|
39
|
-
|
|
39
|
+
scene('TestFlow', () => {
|
|
40
40
|
const name = formatName('test');
|
|
41
41
|
});
|
|
42
42
|
`;
|
|
@@ -44,7 +44,7 @@ describe('getNarratives caching', { timeout: 30_000 }, () => {
|
|
|
44
44
|
await vfs.write('/test/helper.ts', new TextEncoder().encode(helperContent1));
|
|
45
45
|
await vfs.write('/test/test.narrative.ts', new TextEncoder().encode(flowContent));
|
|
46
46
|
|
|
47
|
-
const firstCallResult = await
|
|
47
|
+
const firstCallResult = await getScenes({ vfs, root, pattern, fastFsScan: true, importMap });
|
|
48
48
|
const hash1 = firstCallResult.vfsFiles.sort().join(',');
|
|
49
49
|
|
|
50
50
|
const helperContent2 = `
|
|
@@ -54,30 +54,30 @@ describe('getNarratives caching', { timeout: 30_000 }, () => {
|
|
|
54
54
|
`;
|
|
55
55
|
await vfs.write('/test/helper.ts', new TextEncoder().encode(helperContent2));
|
|
56
56
|
|
|
57
|
-
const secondCallResult = await
|
|
57
|
+
const secondCallResult = await getScenes({ vfs, root, pattern, fastFsScan: true, importMap });
|
|
58
58
|
|
|
59
59
|
const hash2 = secondCallResult.vfsFiles.sort().join(',');
|
|
60
60
|
expect(hash1).toBe(hash2);
|
|
61
|
-
expect(secondCallResult.
|
|
61
|
+
expect(secondCallResult.scenes).toBeDefined();
|
|
62
62
|
});
|
|
63
63
|
|
|
64
64
|
it('should rebuild cache when import map changes', async () => {
|
|
65
65
|
const flowContent = `
|
|
66
|
-
import {
|
|
66
|
+
import { scene } from '../narrative';
|
|
67
67
|
|
|
68
|
-
|
|
68
|
+
scene('TestFlow', () => {
|
|
69
69
|
const x = 1;
|
|
70
70
|
});
|
|
71
71
|
`;
|
|
72
72
|
await vfs.write('/test/test.narrative.ts', new TextEncoder().encode(flowContent));
|
|
73
73
|
|
|
74
74
|
const importMap1 = { 'test-module': { default: 'value1' } };
|
|
75
|
-
const result1 = await
|
|
75
|
+
const result1 = await getScenes({ vfs, root, importMap: importMap1, pattern, fastFsScan: true });
|
|
76
76
|
const importMap2 = { 'test-module': { default: 'value2' } };
|
|
77
77
|
|
|
78
|
-
const result2 = await
|
|
78
|
+
const result2 = await getScenes({ vfs, root, importMap: importMap2, pattern, fastFsScan: true });
|
|
79
79
|
|
|
80
|
-
expect(result1.
|
|
80
|
+
expect(result1.scenes.length).toBe(result2.scenes.length);
|
|
81
81
|
});
|
|
82
82
|
|
|
83
83
|
it('should rebuild cache when a new dependency is added', async () => {
|
|
@@ -87,10 +87,10 @@ describe('getNarratives caching', { timeout: 30_000 }, () => {
|
|
|
87
87
|
}
|
|
88
88
|
`;
|
|
89
89
|
const flowContent = `
|
|
90
|
-
import {
|
|
90
|
+
import { scene } from '../narrative';
|
|
91
91
|
import { getValue } from './helper';
|
|
92
92
|
|
|
93
|
-
|
|
93
|
+
scene('TestFlow', () => {
|
|
94
94
|
const val = getValue();
|
|
95
95
|
});
|
|
96
96
|
`;
|
|
@@ -98,7 +98,7 @@ describe('getNarratives caching', { timeout: 30_000 }, () => {
|
|
|
98
98
|
await vfs.write('/test/helper.ts', new TextEncoder().encode(helperContent1));
|
|
99
99
|
await vfs.write('/test/test.narrative.ts', new TextEncoder().encode(flowContent));
|
|
100
100
|
|
|
101
|
-
const firstCallResult = await
|
|
101
|
+
const firstCallResult = await getScenes({ vfs, root, pattern, fastFsScan: true, importMap });
|
|
102
102
|
const filesCount1 = firstCallResult.vfsFiles.length;
|
|
103
103
|
|
|
104
104
|
const transitiveContent = `
|
|
@@ -117,7 +117,7 @@ describe('getNarratives caching', { timeout: 30_000 }, () => {
|
|
|
117
117
|
await vfs.write('/test/transitive.ts', new TextEncoder().encode(transitiveContent));
|
|
118
118
|
await vfs.write('/test/helper.ts', new TextEncoder().encode(helperContent2));
|
|
119
119
|
|
|
120
|
-
const secondCallResult = await
|
|
120
|
+
const secondCallResult = await getScenes({ vfs, root, pattern, fastFsScan: true, importMap });
|
|
121
121
|
|
|
122
122
|
const filesCount2 = secondCallResult.vfsFiles.length;
|
|
123
123
|
expect(filesCount2).toBeGreaterThan(filesCount1);
|
|
@@ -126,9 +126,9 @@ describe('getNarratives caching', { timeout: 30_000 }, () => {
|
|
|
126
126
|
|
|
127
127
|
it('should not rebuild cache when an unrelated file is touched', async () => {
|
|
128
128
|
const flowContent = `
|
|
129
|
-
import {
|
|
129
|
+
import { scene } from '../narrative';
|
|
130
130
|
|
|
131
|
-
|
|
131
|
+
scene('TestFlow', () => {
|
|
132
132
|
const x = 1;
|
|
133
133
|
});
|
|
134
134
|
`;
|
|
@@ -136,11 +136,11 @@ describe('getNarratives caching', { timeout: 30_000 }, () => {
|
|
|
136
136
|
await vfs.write('/test/test.narrative.ts', new TextEncoder().encode(flowContent));
|
|
137
137
|
await vfs.write('/test/unrelated.txt', new TextEncoder().encode('initial content'));
|
|
138
138
|
|
|
139
|
-
const firstCallResult = await
|
|
139
|
+
const firstCallResult = await getScenes({ vfs, root, pattern, fastFsScan: true, importMap });
|
|
140
140
|
|
|
141
141
|
await vfs.write('/test/unrelated.txt', new TextEncoder().encode('modified content'));
|
|
142
142
|
|
|
143
|
-
const secondCallResult = await
|
|
143
|
+
const secondCallResult = await getScenes({ vfs, root, pattern, fastFsScan: true, importMap });
|
|
144
144
|
|
|
145
145
|
expect(secondCallResult.vfsFiles.some((f) => f.includes('unrelated.txt'))).toBe(false);
|
|
146
146
|
expect(firstCallResult.vfsFiles).toEqual(secondCallResult.vfsFiles);
|
|
@@ -148,16 +148,16 @@ describe('getNarratives caching', { timeout: 30_000 }, () => {
|
|
|
148
148
|
|
|
149
149
|
it('should rebuild cache when a file is deleted from the graph', async () => {
|
|
150
150
|
const flowContent1 = `
|
|
151
|
-
import {
|
|
151
|
+
import { scene } from '../narrative';
|
|
152
152
|
|
|
153
|
-
|
|
153
|
+
scene('TestFlow1', () => {
|
|
154
154
|
const x = 1;
|
|
155
155
|
});
|
|
156
156
|
`;
|
|
157
157
|
const flowContent2 = `
|
|
158
|
-
import {
|
|
158
|
+
import { scene } from '../narrative';
|
|
159
159
|
|
|
160
|
-
|
|
160
|
+
scene('TestFlow2', () => {
|
|
161
161
|
const x = 2;
|
|
162
162
|
});
|
|
163
163
|
`;
|
|
@@ -165,29 +165,29 @@ describe('getNarratives caching', { timeout: 30_000 }, () => {
|
|
|
165
165
|
await vfs.write('/test/test.narrative.ts', new TextEncoder().encode(flowContent1));
|
|
166
166
|
await vfs.write('/test/test2.narrative.ts', new TextEncoder().encode(flowContent2));
|
|
167
167
|
|
|
168
|
-
const firstCallResult = await
|
|
169
|
-
expect(firstCallResult.
|
|
168
|
+
const firstCallResult = await getScenes({ vfs, root, pattern, fastFsScan: true, importMap });
|
|
169
|
+
expect(firstCallResult.scenes.length).toBeGreaterThanOrEqual(2);
|
|
170
170
|
|
|
171
171
|
await vfs.remove('/test/test2.narrative.ts');
|
|
172
172
|
|
|
173
|
-
const secondCallResult = await
|
|
173
|
+
const secondCallResult = await getScenes({ vfs, root, pattern, fastFsScan: true, importMap });
|
|
174
174
|
|
|
175
|
-
expect(secondCallResult.
|
|
175
|
+
expect(secondCallResult.scenes.length).toBeLessThan(firstCallResult.scenes.length);
|
|
176
176
|
expect(secondCallResult.vfsFiles.length).toBeLessThan(firstCallResult.vfsFiles.length);
|
|
177
177
|
});
|
|
178
178
|
|
|
179
179
|
it('should rebuild cache when a file is renamed', async () => {
|
|
180
180
|
const flowContent = `
|
|
181
|
-
import {
|
|
181
|
+
import { scene } from '../narrative';
|
|
182
182
|
|
|
183
|
-
|
|
183
|
+
scene('TestFlow', () => {
|
|
184
184
|
const x = 1;
|
|
185
185
|
});
|
|
186
186
|
`;
|
|
187
187
|
|
|
188
188
|
await vfs.write('/test/test.narrative.ts', new TextEncoder().encode(flowContent));
|
|
189
189
|
|
|
190
|
-
const firstCallResult = await
|
|
190
|
+
const firstCallResult = await getScenes({ vfs, root, pattern, fastFsScan: true, importMap });
|
|
191
191
|
expect(firstCallResult.vfsFiles.some((f) => f.includes('test.narrative.ts'))).toBe(true);
|
|
192
192
|
|
|
193
193
|
const content = await vfs.read('/test/test.narrative.ts');
|
|
@@ -196,7 +196,7 @@ describe('getNarratives caching', { timeout: 30_000 }, () => {
|
|
|
196
196
|
await vfs.remove('/test/test.narrative.ts');
|
|
197
197
|
}
|
|
198
198
|
|
|
199
|
-
const secondCallResult = await
|
|
199
|
+
const secondCallResult = await getScenes({ vfs, root, pattern, fastFsScan: true });
|
|
200
200
|
|
|
201
201
|
expect(secondCallResult.vfsFiles.some((f) => f.includes('renamed.narrative.ts'))).toBe(true);
|
|
202
202
|
expect(secondCallResult.vfsFiles.some((f) => f.includes('test.narrative.ts'))).toBe(false);
|
|
@@ -209,9 +209,9 @@ describe('getNarratives caching', { timeout: 30_000 }, () => {
|
|
|
209
209
|
}
|
|
210
210
|
`;
|
|
211
211
|
const flowContent = `
|
|
212
|
-
import {
|
|
212
|
+
import { scene } from '../narrative';
|
|
213
213
|
|
|
214
|
-
|
|
214
|
+
scene('TestFlow', () => {
|
|
215
215
|
const x: string = 'test';
|
|
216
216
|
});
|
|
217
217
|
`;
|
|
@@ -219,16 +219,16 @@ describe('getNarratives caching', { timeout: 30_000 }, () => {
|
|
|
219
219
|
await vfs.write('/test/types.d.ts', new TextEncoder().encode(dtsContent));
|
|
220
220
|
await vfs.write('/test/test.narrative.ts', new TextEncoder().encode(flowContent));
|
|
221
221
|
|
|
222
|
-
const result = await
|
|
222
|
+
const result = await getScenes({ vfs, root, pattern, fastFsScan: true, importMap });
|
|
223
223
|
|
|
224
224
|
expect(result.vfsFiles.some((f) => f.endsWith('.d.ts'))).toBe(false);
|
|
225
225
|
});
|
|
226
226
|
|
|
227
227
|
it('should rebuild when import map keys change even with same values', async () => {
|
|
228
228
|
const flowContent = `
|
|
229
|
-
import {
|
|
229
|
+
import { scene } from '../narrative';
|
|
230
230
|
|
|
231
|
-
|
|
231
|
+
scene('TestFlow', () => {
|
|
232
232
|
const x = 1;
|
|
233
233
|
});
|
|
234
234
|
`;
|
|
@@ -236,12 +236,12 @@ describe('getNarratives caching', { timeout: 30_000 }, () => {
|
|
|
236
236
|
await vfs.write('/test/test.narrative.ts', new TextEncoder().encode(flowContent));
|
|
237
237
|
|
|
238
238
|
const importMap1 = { 'module-a': 'value', 'module-b': 'value' };
|
|
239
|
-
const result1 = await
|
|
239
|
+
const result1 = await getScenes({ vfs, root, importMap: importMap1, pattern, fastFsScan: true });
|
|
240
240
|
const importMap2 = { 'module-c': 'value', 'module-d': 'value' };
|
|
241
241
|
|
|
242
|
-
const result2 = await
|
|
242
|
+
const result2 = await getScenes({ vfs, root, importMap: importMap2, pattern, fastFsScan: true });
|
|
243
243
|
|
|
244
|
-
expect(result1.
|
|
244
|
+
expect(result1.scenes).toEqual(result2.scenes); // Same flows
|
|
245
245
|
});
|
|
246
246
|
|
|
247
247
|
it('should handle complex transitive dependency chains', async () => {
|
|
@@ -257,10 +257,10 @@ describe('getNarratives caching', { timeout: 30_000 }, () => {
|
|
|
257
257
|
export const TOP_VALUE = MID_VALUE + '-top';
|
|
258
258
|
`;
|
|
259
259
|
const flowContent = `
|
|
260
|
-
import {
|
|
260
|
+
import { scene } from '../narrative';
|
|
261
261
|
import { TOP_VALUE } from './chain1';
|
|
262
262
|
|
|
263
|
-
|
|
263
|
+
scene('TestFlow', () => {
|
|
264
264
|
const val = TOP_VALUE;
|
|
265
265
|
});
|
|
266
266
|
`;
|
|
@@ -270,7 +270,7 @@ describe('getNarratives caching', { timeout: 30_000 }, () => {
|
|
|
270
270
|
await vfs.write('/test/chain1.ts', new TextEncoder().encode(chain1Content));
|
|
271
271
|
await vfs.write('/test/test.narrative.ts', new TextEncoder().encode(flowContent));
|
|
272
272
|
|
|
273
|
-
const result1 = await
|
|
273
|
+
const result1 = await getScenes({ vfs, root, pattern, fastFsScan: true, importMap });
|
|
274
274
|
|
|
275
275
|
expect(result1.vfsFiles.some((f) => f.includes('chain1'))).toBe(true);
|
|
276
276
|
expect(result1.vfsFiles.some((f) => f.includes('chain2'))).toBe(true);
|
|
@@ -281,7 +281,7 @@ describe('getNarratives caching', { timeout: 30_000 }, () => {
|
|
|
281
281
|
`;
|
|
282
282
|
await vfs.write('/test/chain3.ts', new TextEncoder().encode(modifiedChain3Content));
|
|
283
283
|
|
|
284
|
-
const result2 = await
|
|
284
|
+
const result2 = await getScenes({ vfs, root, pattern, fastFsScan: true, importMap });
|
|
285
285
|
expect(result2.vfsFiles.length).toBe(result1.vfsFiles.length);
|
|
286
286
|
});
|
|
287
287
|
});
|