@codeyam/codeyam-cli 0.1.22 → 0.1.24
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/analyzer-template/.build-info.json +7 -7
- package/analyzer-template/log.txt +3 -3
- package/analyzer-template/packages/ai/src/lib/astScopes/methodSemantics.ts +135 -0
- package/analyzer-template/packages/ai/src/lib/astScopes/nodeToSource.ts +19 -0
- package/analyzer-template/packages/ai/src/lib/astScopes/paths.ts +11 -4
- package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateDataStructure.ts +5 -1
- package/analyzer-template/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.ts +1632 -1554
- package/analyzer-template/packages/database/src/lib/loadAnalysis.ts +7 -1
- package/analyzer-template/packages/github/dist/database/src/lib/loadAnalysis.d.ts.map +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/loadAnalysis.js +7 -1
- package/analyzer-template/packages/github/dist/database/src/lib/loadAnalysis.js.map +1 -1
- package/analyzer-template/project/runMultiScenarioServer.ts +26 -3
- package/background/src/lib/virtualized/project/runMultiScenarioServer.js +23 -3
- package/background/src/lib/virtualized/project/runMultiScenarioServer.js.map +1 -1
- package/codeyam-cli/src/commands/__tests__/editor.analyzeImportsArgs.test.js +47 -0
- package/codeyam-cli/src/commands/__tests__/editor.analyzeImportsArgs.test.js.map +1 -0
- package/codeyam-cli/src/commands/__tests__/editor.auditNoAutoAnalysis.test.js +17 -9
- package/codeyam-cli/src/commands/__tests__/editor.auditNoAutoAnalysis.test.js.map +1 -1
- package/codeyam-cli/src/commands/__tests__/editor.designSystem.test.js +30 -0
- package/codeyam-cli/src/commands/__tests__/editor.designSystem.test.js.map +1 -0
- package/codeyam-cli/src/commands/editor.js +207 -41
- package/codeyam-cli/src/commands/editor.js.map +1 -1
- package/codeyam-cli/src/commands/editorAnalyzeImportsArgs.js +23 -0
- package/codeyam-cli/src/commands/editorAnalyzeImportsArgs.js.map +1 -0
- package/codeyam-cli/src/data/designSystems.js +27 -0
- package/codeyam-cli/src/data/designSystems.js.map +1 -0
- package/codeyam-cli/src/utils/__tests__/editorApi.test.js +44 -0
- package/codeyam-cli/src/utils/__tests__/editorApi.test.js.map +1 -1
- package/codeyam-cli/src/utils/__tests__/editorAudit.test.js +103 -1
- package/codeyam-cli/src/utils/__tests__/editorAudit.test.js.map +1 -1
- package/codeyam-cli/src/utils/__tests__/editorScenarios.test.js +140 -1
- package/codeyam-cli/src/utils/__tests__/editorScenarios.test.js.map +1 -1
- package/codeyam-cli/src/utils/__tests__/editorSeedAdapter.test.js +50 -1
- package/codeyam-cli/src/utils/__tests__/editorSeedAdapter.test.js.map +1 -1
- package/codeyam-cli/src/utils/editorApi.js +16 -0
- package/codeyam-cli/src/utils/editorApi.js.map +1 -1
- package/codeyam-cli/src/utils/editorAudit.js +38 -2
- package/codeyam-cli/src/utils/editorAudit.js.map +1 -1
- package/codeyam-cli/src/utils/editorScenarios.js +60 -0
- package/codeyam-cli/src/utils/editorScenarios.js.map +1 -1
- package/codeyam-cli/src/utils/editorSeedAdapter.js +42 -2
- package/codeyam-cli/src/utils/editorSeedAdapter.js.map +1 -1
- package/codeyam-cli/src/utils/queue/__tests__/job.interactiveStart.test.js +159 -0
- package/codeyam-cli/src/utils/queue/__tests__/job.interactiveStart.test.js.map +1 -0
- package/codeyam-cli/src/utils/queue/job.js +9 -1
- package/codeyam-cli/src/utils/queue/job.js.map +1 -1
- package/codeyam-cli/src/webserver/__tests__/api.interactive-switch-scenario.test.js +98 -0
- package/codeyam-cli/src/webserver/__tests__/api.interactive-switch-scenario.test.js.map +1 -0
- package/codeyam-cli/src/webserver/__tests__/editorProxy.test.js +30 -11
- package/codeyam-cli/src/webserver/__tests__/editorProxy.test.js.map +1 -1
- package/codeyam-cli/src/webserver/app/routes/api.interactive-switch-scenario.js +34 -0
- package/codeyam-cli/src/webserver/app/routes/api.interactive-switch-scenario.js.map +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/{InteractivePreview-CKeQT5Ty.js → InteractivePreview-DtYTSPL2.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{ScenarioViewer-DUMfcNVK.js → ScenarioViewer-CefgqbCr.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/Spinner-Bc8BG-Lw.js +34 -0
- package/codeyam-cli/src/webserver/build/client/assets/{_index-BAWd-Xjf.js → _index-C1YkzTAV.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{activity.(_tab)-BOARiB-g.js → activity.(_tab)-yH46LLUz.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/api.editor-verify-routes-l0sNRNKZ.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/api.interactive-switch-scenario-l0sNRNKZ.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/{dev.empty-C8y4mmyv.js → dev.empty-CRepiabR.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{editor.entity.(_sha)-aIHKLB-m.js → editor.entity.(_sha)-oBrbke_R.js} +19 -19
- package/codeyam-cli/src/webserver/build/client/assets/{entity._sha._-ByHz6rAQ.js → entity._sha._-DYJRGiDI.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{entity._sha.scenarios._scenarioId.dev-CmLO432x.js → entity._sha.scenarios._scenarioId.dev-wdiwx5-Z.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{entity._sha.scenarios._scenarioId.fullscreen-Bz9sCUF_.js → entity._sha.scenarios._scenarioId.fullscreen-BrkN-40Y.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{entity._sha_.create-scenario-DQM8E7L4.js → entity._sha_.create-scenario-DxfhekTZ.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{entity._sha_.edit._scenarioId-CAoXLsQr.js → entity._sha_.edit._scenarioId-CRXJWmpB.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/manifest-694b698a.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/{root-D2_tktnk.js → root-DXjFYOxD.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/useLastLogLine-D9QZKaLJ.js +2 -0
- package/codeyam-cli/src/webserver/build/server/assets/{analysisRunner-DjF-soOH.js → analysisRunner-zEYtiv0T.js} +1 -1
- package/codeyam-cli/src/webserver/build/server/assets/{index-nAvHGWbz.js → index-CcHPEbhi.js} +1 -1
- package/codeyam-cli/src/webserver/build/server/assets/{init-XhpIt-OT.js → init-D68IyWbU.js} +1 -1
- package/codeyam-cli/src/webserver/build/server/assets/{server-build-DVwiibFu.js → server-build-Cxzo0Zp2.js} +192 -148
- package/codeyam-cli/src/webserver/build/server/index.js +1 -1
- package/codeyam-cli/src/webserver/build-info.json +5 -5
- package/codeyam-cli/src/webserver/editorProxy.js +55 -3
- package/codeyam-cli/src/webserver/editorProxy.js.map +1 -1
- package/codeyam-cli/src/webserver/terminalServer.js +1 -2
- package/codeyam-cli/src/webserver/terminalServer.js.map +1 -1
- package/codeyam-cli/templates/codeyam-editor-reference.md +8 -6
- package/codeyam-cli/templates/design-systems/clean-dashboard-design-system.md +255 -0
- package/codeyam-cli/templates/design-systems/editorial-design-system.md +267 -0
- package/codeyam-cli/templates/design-systems/mono-brutalist-design-system.md +256 -0
- package/codeyam-cli/templates/design-systems/neo-brutalist-design-system.md +294 -0
- package/codeyam-cli/templates/nextjs-prisma-sqlite/seed-adapter.ts +47 -34
- package/codeyam-cli/templates/seed-adapters/supabase.ts +14 -5
- package/package.json +1 -1
- package/packages/ai/src/lib/astScopes/methodSemantics.js +99 -0
- package/packages/ai/src/lib/astScopes/methodSemantics.js.map +1 -1
- package/packages/ai/src/lib/astScopes/nodeToSource.js +16 -0
- package/packages/ai/src/lib/astScopes/nodeToSource.js.map +1 -1
- package/packages/ai/src/lib/astScopes/paths.js +12 -3
- package/packages/ai/src/lib/astScopes/paths.js.map +1 -1
- package/packages/analyze/src/lib/files/scenarios/generateDataStructure.js +5 -1
- package/packages/analyze/src/lib/files/scenarios/generateDataStructure.js.map +1 -1
- package/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.js +1330 -1270
- package/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.js.map +1 -1
- package/packages/database/src/lib/loadAnalysis.js +7 -1
- package/packages/database/src/lib/loadAnalysis.js.map +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/Spinner-D0LgAaSa.js +0 -34
- package/codeyam-cli/src/webserver/build/client/assets/manifest-bcbb3d49.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/useLastLogLine-BNd5hYuW.js +0 -2
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Parse file path arguments for `codeyam editor analyze-imports`.
|
|
3
|
+
*
|
|
4
|
+
* Supports multiple calling conventions:
|
|
5
|
+
* codeyam editor analyze-imports path/to/file.tsx → json="path/to/file.tsx", extras=[]
|
|
6
|
+
* codeyam editor analyze-imports file1.tsx file2.tsx → json="file1.tsx", extras=["editor","file2.tsx"]
|
|
7
|
+
* codeyam editor analyze-imports → json=undefined, extras=[] → empty (all entities)
|
|
8
|
+
*/
|
|
9
|
+
export function parseAnalyzeImportsArgs(json, extras) {
|
|
10
|
+
const paths = [];
|
|
11
|
+
if (json) {
|
|
12
|
+
paths.push(json);
|
|
13
|
+
}
|
|
14
|
+
// Collect extra positional args, filtering out "editor" and non-strings
|
|
15
|
+
for (const arg of extras) {
|
|
16
|
+
if (typeof arg === 'string' && arg !== 'editor') {
|
|
17
|
+
paths.push(arg);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
// Deduplicate while preserving order
|
|
21
|
+
return [...new Set(paths)];
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=editorAnalyzeImportsArgs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"editorAnalyzeImportsArgs.js","sourceRoot":"","sources":["../../../../src/commands/editorAnalyzeImportsArgs.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,MAAM,UAAU,uBAAuB,CACrC,IAAwB,EACxB,MAA2B;IAE3B,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,IAAI,IAAI,EAAE,CAAC;QACT,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnB,CAAC;IAED,wEAAwE;IACxE,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;QACzB,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,QAAQ,EAAE,CAAC;YAChD,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IAED,qCAAqC;IACrC,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;AAC7B,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
export const DESIGN_SYSTEMS = [
|
|
2
|
+
{
|
|
3
|
+
id: 'clean-dashboard',
|
|
4
|
+
name: 'Clean Dashboard',
|
|
5
|
+
description: 'Minimal, information-dense. Subtle depth via soft shadows and thin borders.',
|
|
6
|
+
fileName: 'clean-dashboard-design-system.md',
|
|
7
|
+
},
|
|
8
|
+
{
|
|
9
|
+
id: 'editorial',
|
|
10
|
+
name: 'Editorial',
|
|
11
|
+
description: 'Serif-first, warm, print-inspired. Parchment tones, sharp corners, typography-driven.',
|
|
12
|
+
fileName: 'editorial-design-system.md',
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
id: 'neo-brutalist',
|
|
16
|
+
name: 'Neo-Brutalist',
|
|
17
|
+
description: 'Hard-edged, warm, bold borders + offset shadows. Hot pink accent.',
|
|
18
|
+
fileName: 'neo-brutalist-design-system.md',
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
id: 'mono-brutalist',
|
|
22
|
+
name: 'Mono-Brutalist',
|
|
23
|
+
description: 'Raw, typographic, terminal-warm. Monospace identity, dashed borders, mint-green accent.',
|
|
24
|
+
fileName: 'mono-brutalist-design-system.md',
|
|
25
|
+
},
|
|
26
|
+
];
|
|
27
|
+
//# sourceMappingURL=designSystems.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"designSystems.js","sourceRoot":"","sources":["../../../../src/data/designSystems.ts"],"names":[],"mappings":"AAOA,MAAM,CAAC,MAAM,cAAc,GAAyB;IAClD;QACE,EAAE,EAAE,iBAAiB;QACrB,IAAI,EAAE,iBAAiB;QACvB,WAAW,EACT,6EAA6E;QAC/E,QAAQ,EAAE,kCAAkC;KAC7C;IACD;QACE,EAAE,EAAE,WAAW;QACf,IAAI,EAAE,WAAW;QACjB,WAAW,EACT,uFAAuF;QACzF,QAAQ,EAAE,4BAA4B;KACvC;IACD;QACE,EAAE,EAAE,eAAe;QACnB,IAAI,EAAE,eAAe;QACrB,WAAW,EACT,mEAAmE;QACrE,QAAQ,EAAE,gCAAgC;KAC3C;IACD;QACE,EAAE,EAAE,gBAAgB;QACpB,IAAI,EAAE,gBAAgB;QACtB,WAAW,EACT,yFAAyF;QAC3F,QAAQ,EAAE,iCAAiC;KAC5C;CACF,CAAC"}
|
|
@@ -128,6 +128,50 @@ describe('buildEditorApiRequest', () => {
|
|
|
128
128
|
});
|
|
129
129
|
});
|
|
130
130
|
});
|
|
131
|
+
describe('verify-routes', () => {
|
|
132
|
+
it('should require JSON argument', () => {
|
|
133
|
+
expect(() => buildEditorApiRequest('verify-routes')).toThrow('JSON argument is required');
|
|
134
|
+
});
|
|
135
|
+
it('should require at least one path or apiRoute', () => {
|
|
136
|
+
expect(() => buildEditorApiRequest('verify-routes', '{}')).toThrow('at least one');
|
|
137
|
+
});
|
|
138
|
+
it('should accept paths only', () => {
|
|
139
|
+
const req = buildEditorApiRequest('verify-routes', '{"paths":["/library","/about"]}');
|
|
140
|
+
expect(req).toEqual({
|
|
141
|
+
method: 'POST',
|
|
142
|
+
endpoint: '/api/editor-verify-routes',
|
|
143
|
+
body: { paths: ['/library', '/about'] },
|
|
144
|
+
});
|
|
145
|
+
});
|
|
146
|
+
it('should accept apiRoutes only', () => {
|
|
147
|
+
const req = buildEditorApiRequest('verify-routes', '{"apiRoutes":["/api/collections"]}');
|
|
148
|
+
expect(req).toEqual({
|
|
149
|
+
method: 'POST',
|
|
150
|
+
endpoint: '/api/editor-verify-routes',
|
|
151
|
+
body: { apiRoutes: ['/api/collections'] },
|
|
152
|
+
});
|
|
153
|
+
});
|
|
154
|
+
it('should accept both paths and apiRoutes', () => {
|
|
155
|
+
const req = buildEditorApiRequest('verify-routes', '{"paths":["/library"],"apiRoutes":["/api/collections?userId=demo"]}');
|
|
156
|
+
expect(req).toEqual({
|
|
157
|
+
method: 'POST',
|
|
158
|
+
endpoint: '/api/editor-verify-routes',
|
|
159
|
+
body: {
|
|
160
|
+
paths: ['/library'],
|
|
161
|
+
apiRoutes: ['/api/collections?userId=demo'],
|
|
162
|
+
},
|
|
163
|
+
});
|
|
164
|
+
});
|
|
165
|
+
it('should reject empty arrays', () => {
|
|
166
|
+
expect(() => buildEditorApiRequest('verify-routes', '{"paths":[],"apiRoutes":[]}')).toThrow('at least one');
|
|
167
|
+
});
|
|
168
|
+
it('should reject non-array paths', () => {
|
|
169
|
+
expect(() => buildEditorApiRequest('verify-routes', '{"paths":"/library"}')).toThrow('at least one');
|
|
170
|
+
});
|
|
171
|
+
it('should reject invalid JSON', () => {
|
|
172
|
+
expect(() => buildEditorApiRequest('verify-routes', 'not-json')).toThrow();
|
|
173
|
+
});
|
|
174
|
+
});
|
|
131
175
|
describe('unknown subcommand', () => {
|
|
132
176
|
it('should throw for unrecognized subcommand', () => {
|
|
133
177
|
expect(() => buildEditorApiRequest('unknown-thing')).toThrow('Unknown editor subcommand: unknown-thing');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"editorApi.test.js","sourceRoot":"","sources":["../../../../../src/utils/__tests__/editorApi.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"editorApi.test.js","sourceRoot":"","sources":["../../../../../src/utils/__tests__/editorApi.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import Database from 'better-sqlite3';
|
|
2
2
|
import { Kysely, SqliteDialect } from 'kysely';
|
|
3
|
-
import { isComponent, classifyGlossaryEntries, computeAudit, filterGlossaryByChangeStatus, resolveAuditSessionScope, queryScenarioCounts, queryPageScenarioCounts, queryIncompleteEntities, queryMiscategorizedScenarios, queryUnassociatedScenarios, isOnlyIncompleteEntities, isOnlyPreExistingIncomplete, isAutoRemediable, identifyScenariosNeedingRecapture, detectDuplicateNames, aggregateClientErrorsByComponent, } from "../editorAudit.js";
|
|
3
|
+
import { isComponent, classifyGlossaryEntries, computeAudit, filterGlossaryByChangeStatus, resolveAuditSessionScope, queryScenarioCounts, queryPageScenarioCounts, queryIncompleteEntities, queryMiscategorizedScenarios, queryUnassociatedScenarios, isOnlyIncompleteEntities, isOnlyPreExistingIncomplete, isAutoRemediable, identifyScenariosNeedingRecapture, detectDuplicateNames, aggregateClientErrorsByComponent, determineTargetedAnalysisPaths, shouldAutoRecapture, } from "../editorAudit.js";
|
|
4
4
|
describe('editorAudit', () => {
|
|
5
5
|
describe('isComponent', () => {
|
|
6
6
|
it('should return true for JSX.Element return type', () => {
|
|
@@ -3908,5 +3908,107 @@ describe('editorAudit', () => {
|
|
|
3908
3908
|
expect(result['Home']).toEqual(['ReferenceError: window is not defined']);
|
|
3909
3909
|
});
|
|
3910
3910
|
});
|
|
3911
|
+
// ── determineTargetedAnalysisPaths ──────────────────────────────────
|
|
3912
|
+
describe('determineTargetedAnalysisPaths', () => {
|
|
3913
|
+
it('should return unique file paths from unassociated scenarios', () => {
|
|
3914
|
+
const result = determineTargetedAnalysisPaths({
|
|
3915
|
+
unassociatedScenarios: [
|
|
3916
|
+
{ filePath: 'app/components/CreateFromFiltersButton.tsx' },
|
|
3917
|
+
{ filePath: 'app/components/StaleDismissedBanner.tsx' },
|
|
3918
|
+
],
|
|
3919
|
+
incompleteEntities: [],
|
|
3920
|
+
});
|
|
3921
|
+
expect(result).toEqual([
|
|
3922
|
+
'app/components/CreateFromFiltersButton.tsx',
|
|
3923
|
+
'app/components/StaleDismissedBanner.tsx',
|
|
3924
|
+
]);
|
|
3925
|
+
});
|
|
3926
|
+
it('should include file paths from incomplete entities', () => {
|
|
3927
|
+
const result = determineTargetedAnalysisPaths({
|
|
3928
|
+
unassociatedScenarios: [{ filePath: 'app/components/TaskCard.tsx' }],
|
|
3929
|
+
incompleteEntities: [{ filePath: 'app/components/Dashboard.tsx' }],
|
|
3930
|
+
});
|
|
3931
|
+
expect(result).toEqual([
|
|
3932
|
+
'app/components/TaskCard.tsx',
|
|
3933
|
+
'app/components/Dashboard.tsx',
|
|
3934
|
+
]);
|
|
3935
|
+
});
|
|
3936
|
+
it('should deduplicate file paths across both sources', () => {
|
|
3937
|
+
const result = determineTargetedAnalysisPaths({
|
|
3938
|
+
unassociatedScenarios: [{ filePath: 'app/components/TaskCard.tsx' }],
|
|
3939
|
+
incompleteEntities: [{ filePath: 'app/components/TaskCard.tsx' }],
|
|
3940
|
+
});
|
|
3941
|
+
expect(result).toEqual(['app/components/TaskCard.tsx']);
|
|
3942
|
+
});
|
|
3943
|
+
it('should return empty array when no issues', () => {
|
|
3944
|
+
const result = determineTargetedAnalysisPaths({
|
|
3945
|
+
unassociatedScenarios: [],
|
|
3946
|
+
incompleteEntities: [],
|
|
3947
|
+
});
|
|
3948
|
+
expect(result).toEqual([]);
|
|
3949
|
+
});
|
|
3950
|
+
it('should filter out entries with empty file paths', () => {
|
|
3951
|
+
const result = determineTargetedAnalysisPaths({
|
|
3952
|
+
unassociatedScenarios: [{ filePath: '' }],
|
|
3953
|
+
incompleteEntities: [],
|
|
3954
|
+
});
|
|
3955
|
+
expect(result).toEqual([]);
|
|
3956
|
+
});
|
|
3957
|
+
it('should handle incomplete entities with undefined filePath', () => {
|
|
3958
|
+
const result = determineTargetedAnalysisPaths({
|
|
3959
|
+
unassociatedScenarios: [{ filePath: 'app/components/Good.tsx' }],
|
|
3960
|
+
incompleteEntities: [
|
|
3961
|
+
{
|
|
3962
|
+
/* no filePath at all */
|
|
3963
|
+
},
|
|
3964
|
+
{ filePath: undefined },
|
|
3965
|
+
{ filePath: 'app/components/AlsoGood.tsx' },
|
|
3966
|
+
],
|
|
3967
|
+
});
|
|
3968
|
+
expect(result).toEqual([
|
|
3969
|
+
'app/components/Good.tsx',
|
|
3970
|
+
'app/components/AlsoGood.tsx',
|
|
3971
|
+
]);
|
|
3972
|
+
});
|
|
3973
|
+
});
|
|
3974
|
+
// ── shouldAutoRecapture ─────────────────────────────────────────────
|
|
3975
|
+
describe('shouldAutoRecapture', () => {
|
|
3976
|
+
it('should return true when fix flag is set and stale scenarios exist', () => {
|
|
3977
|
+
expect(shouldAutoRecapture({
|
|
3978
|
+
fix: true,
|
|
3979
|
+
scenariosNeedingRecapture: [
|
|
3980
|
+
{
|
|
3981
|
+
scenarioName: 'Default',
|
|
3982
|
+
entityName: 'TaskCard',
|
|
3983
|
+
status: { status: 'edited' },
|
|
3984
|
+
},
|
|
3985
|
+
],
|
|
3986
|
+
})).toBe(true);
|
|
3987
|
+
});
|
|
3988
|
+
it('should return false when fix flag is not set', () => {
|
|
3989
|
+
expect(shouldAutoRecapture({
|
|
3990
|
+
fix: false,
|
|
3991
|
+
scenariosNeedingRecapture: [
|
|
3992
|
+
{
|
|
3993
|
+
scenarioName: 'Default',
|
|
3994
|
+
entityName: 'TaskCard',
|
|
3995
|
+
status: { status: 'edited' },
|
|
3996
|
+
},
|
|
3997
|
+
],
|
|
3998
|
+
})).toBe(false);
|
|
3999
|
+
});
|
|
4000
|
+
it('should return false when fix is set but no stale scenarios', () => {
|
|
4001
|
+
expect(shouldAutoRecapture({
|
|
4002
|
+
fix: true,
|
|
4003
|
+
scenariosNeedingRecapture: [],
|
|
4004
|
+
})).toBe(false);
|
|
4005
|
+
});
|
|
4006
|
+
it('should return false when both are falsy', () => {
|
|
4007
|
+
expect(shouldAutoRecapture({
|
|
4008
|
+
fix: false,
|
|
4009
|
+
scenariosNeedingRecapture: [],
|
|
4010
|
+
})).toBe(false);
|
|
4011
|
+
});
|
|
4012
|
+
});
|
|
3911
4013
|
});
|
|
3912
4014
|
//# sourceMappingURL=editorAudit.test.js.map
|