@codeyam/codeyam-cli 0.1.28 → 0.1.29
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 +6 -6
- package/analyzer-template/log.txt +3 -3
- package/analyzer-template/package.json +1 -1
- package/analyzer-template/packages/aws/package.json +5 -5
- package/codeyam-cli/src/commands/editor.js +213 -5
- package/codeyam-cli/src/commands/editor.js.map +1 -1
- package/codeyam-cli/src/utils/__tests__/editorAudit.test.js +136 -0
- package/codeyam-cli/src/utils/__tests__/editorAudit.test.js.map +1 -1
- package/codeyam-cli/src/utils/__tests__/editorRoadmap.test.js +398 -0
- package/codeyam-cli/src/utils/__tests__/editorRoadmap.test.js.map +1 -0
- package/codeyam-cli/src/utils/designSystemShowcase.js +810 -0
- package/codeyam-cli/src/utils/designSystemShowcase.js.map +1 -0
- package/codeyam-cli/src/utils/editorAudit.js +6 -1
- package/codeyam-cli/src/utils/editorAudit.js.map +1 -1
- package/codeyam-cli/src/utils/editorRoadmap.js +301 -0
- package/codeyam-cli/src/utils/editorRoadmap.js.map +1 -0
- package/codeyam-cli/src/utils/editorScenarios.js +10 -0
- package/codeyam-cli/src/utils/editorScenarios.js.map +1 -1
- package/codeyam-cli/src/webserver/__tests__/api.interactive-switch-scenario.test.js +1 -0
- package/codeyam-cli/src/webserver/__tests__/api.interactive-switch-scenario.test.js.map +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{CopyButton-CLe80MMu.js → CopyButton-DTBZZfSk.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{EntityItem-Crt_KN_U.js → EntityItem-BxclONWq.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{EntityTypeIcon-CD7lGABo.js → EntityTypeIcon-BsnEOJZ_.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{InlineSpinner-CgTNOhnu.js → InlineSpinner-ByaELMbv.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{InteractivePreview-DtYTSPL2.js → InteractivePreview-6WjVfhxX.js} +2 -2
- package/codeyam-cli/src/webserver/build/client/assets/{LibraryFunctionPreview-D3s1MFkb.js → LibraryFunctionPreview-ChX-Hp7W.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{LogViewer-CM5zg40N.js → LogViewer-C-9zQdXg.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{MiniClaudeChat-CQENLSrF.js → MiniClaudeChat-BusrvT2F.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{ReportIssueModal-C2PLkej3.js → ReportIssueModal-DQsceHVv.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{SafeScreenshot-DanvyBPb.js → SafeScreenshot-DThcm_9M.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{ScenarioViewer-CefgqbCr.js → ScenarioViewer-Cl4oOA3A.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{Spinner-Bc8BG-Lw.js → Spinner-CIil5-gb.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{ViewportInspectBar-BA_Ry-rs.js → ViewportInspectBar-BqkA9zyZ.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{_index-C1YkzTAV.js → _index-DnOgyseQ.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{activity.(_tab)-yH46LLUz.js → activity.(_tab)-DqM9hbNE.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{addon-web-links-CHx25PAe.js → addon-web-links-C58dYPwR.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{agent-transcripts-Bg3e7q4S.js → agent-transcripts-B8NCeOrm.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/api.editor-roadmap-l0sNRNKZ.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/{book-open-CL-lMgHh.js → book-open-BFSIqZgO.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{chevron-down-GmAjGS9-.js → chevron-down-B9fDzFVh.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/chunk-UVKPFVEO-Bmq2apuh.js +43 -0
- package/codeyam-cli/src/webserver/build/client/assets/{circle-check-DFcQkN5j.js → circle-check-DLPObLUx.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{copy-C6iF61Xs.js → copy-DXEmO0TD.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{createLucideIcon-4ImjHTVC.js → createLucideIcon-BwyFiRot.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{dev.empty-CRepiabR.js → dev.empty-iRhRIFlp.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/editor._tab-BZPBzV73.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/editor.entity.(_sha)-785deXbZ.js +147 -0
- package/codeyam-cli/src/webserver/build/client/assets/{editorPreview-CluPkvXJ.js → editorPreview-C6fEYHrh.js} +6 -6
- package/codeyam-cli/src/webserver/build/client/assets/{entity._sha._-DYJRGiDI.js → entity._sha._-Ce1s4OQ1.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{entity._sha.scenarios._scenarioId.dev-wdiwx5-Z.js → entity._sha.scenarios._scenarioId.dev-C8AyYgYT.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{entity._sha.scenarios._scenarioId.fullscreen-BrkN-40Y.js → entity._sha.scenarios._scenarioId.fullscreen-DziaVQX1.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{entity._sha_.create-scenario-DxfhekTZ.js → entity._sha_.create-scenario-BTcpgIpC.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{entity._sha_.edit._scenarioId-CRXJWmpB.js → entity._sha_.edit._scenarioId-D_O_ajfZ.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{entry.client-SuW9syRS.js → entry.client-j1Vi0bco.js} +6 -6
- package/codeyam-cli/src/webserver/build/client/assets/{files-D-xGrg29.js → files-kuny2Q_s.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{git-Bq_fbXP5.js → git-DgCZPMie.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/globals-Bt7TsgQz.css +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/{index-Bp1l4hSv.js → index-BliGSSpl.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{index-DE3jI_dv.js → index-SqjQKTdH.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{index-CWV9XZiG.js → index-vyrZD2g4.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{labs-B_IX45ih.js → labs-c3yLxSEp.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{loader-circle-De-7qQ2u.js → loader-circle-D-q28GLF.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/manifest-3d8cde80.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/{memory-Cx2xEx7s.js → memory-CEWIUC4t.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{pause-CFxEKL1u.js → pause-BP6fitdh.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{root-dKFRTYcy.js → root-CVjDQwjJ.js} +6 -6
- package/codeyam-cli/src/webserver/build/client/assets/{search-BdBb5aqc.js → search-BooqacKS.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{settings-DdE-Untf.js → settings-BM0nbryO.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{simulations-DSCdE99u.js → simulations-ovy6FjRY.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{terminal-CrplD4b1.js → terminal-DHemCJIs.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{triangle-alert-DqJ0j69l.js → triangle-alert-D87ekDl8.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{useCustomSizes-DhXHbEjP.js → useCustomSizes-Dk0Tciqg.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{useLastLogLine-D9QZKaLJ.js → useLastLogLine-C8QvIe05.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{useReportContext-Cy5Qg_UR.js → useReportContext-jkCytuYz.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{useToast-5HR2j9ZE.js → useToast-BgqkixU9.js} +1 -1
- package/codeyam-cli/src/webserver/build/server/assets/{analysisRunner-OLsM110H.js → analysisRunner-CTJYMVFP.js} +1 -1
- package/codeyam-cli/src/webserver/build/server/assets/{index-WHdB6WTN.js → index-CCth4Hgw.js} +1 -1
- package/codeyam-cli/src/webserver/build/server/assets/{init-DbSiZoE6.js → init-UXl-3vVp.js} +1 -1
- package/codeyam-cli/src/webserver/build/server/assets/{server-build-DZbLY6O_.js → server-build-DSW2mE30.js} +198 -147
- 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/server.js +67 -0
- package/codeyam-cli/src/webserver/server.js.map +1 -1
- package/codeyam-cli/src/webserver/terminalServer.js +21 -0
- package/codeyam-cli/src/webserver/terminalServer.js.map +1 -1
- package/codeyam-cli/templates/editor-step-hook.py +4 -4
- package/package.json +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/chunk-JZWAC4HX-BAdwhyCx.js +0 -43
- package/codeyam-cli/src/webserver/build/client/assets/editor._tab-Gbk_i5Js.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/editor.entity.(_sha)-CRxPi2BB.js +0 -96
- package/codeyam-cli/src/webserver/build/client/assets/globals-BsGHu8WX.css +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/manifest-9032538f.js +0 -1
|
@@ -563,6 +563,142 @@ describe('editorAudit', () => {
|
|
|
563
563
|
expect(result.summary.componentsOk).toBe(1);
|
|
564
564
|
expect(result.summary.componentsWithErrors).toBe(1);
|
|
565
565
|
});
|
|
566
|
+
// ── Test case count integration ─────────────────────────────────
|
|
567
|
+
it('should include testCaseCount when testCaseCounts is provided', () => {
|
|
568
|
+
const result = computeAudit({
|
|
569
|
+
components: [],
|
|
570
|
+
functions: [
|
|
571
|
+
{
|
|
572
|
+
name: 'calculatePrice',
|
|
573
|
+
filePath: 'app/lib/pricing.ts',
|
|
574
|
+
testFile: 'app/lib/pricing.test.ts',
|
|
575
|
+
},
|
|
576
|
+
],
|
|
577
|
+
scenarioCounts: {},
|
|
578
|
+
testFileExistence: { 'app/lib/pricing.test.ts': true },
|
|
579
|
+
testResults: {
|
|
580
|
+
'app/lib/pricing.test.ts': {
|
|
581
|
+
passing: true,
|
|
582
|
+
hasEntityNameDescribe: true,
|
|
583
|
+
},
|
|
584
|
+
},
|
|
585
|
+
testCaseCounts: { calculatePrice: 5 },
|
|
586
|
+
});
|
|
587
|
+
expect(result.functions[0].testCaseCount).toBe(5);
|
|
588
|
+
});
|
|
589
|
+
it('should not include testCaseCount when testCaseCounts is not provided', () => {
|
|
590
|
+
const result = computeAudit({
|
|
591
|
+
components: [],
|
|
592
|
+
functions: [
|
|
593
|
+
{
|
|
594
|
+
name: 'calculatePrice',
|
|
595
|
+
filePath: 'app/lib/pricing.ts',
|
|
596
|
+
testFile: 'app/lib/pricing.test.ts',
|
|
597
|
+
},
|
|
598
|
+
],
|
|
599
|
+
scenarioCounts: {},
|
|
600
|
+
testFileExistence: { 'app/lib/pricing.test.ts': true },
|
|
601
|
+
testResults: {
|
|
602
|
+
'app/lib/pricing.test.ts': {
|
|
603
|
+
passing: true,
|
|
604
|
+
hasEntityNameDescribe: true,
|
|
605
|
+
},
|
|
606
|
+
},
|
|
607
|
+
});
|
|
608
|
+
expect(result.functions[0].testCaseCount).toBeUndefined();
|
|
609
|
+
});
|
|
610
|
+
it('should count functionsThinCoverage for ok functions with fewer than 3 test cases', () => {
|
|
611
|
+
const result = computeAudit({
|
|
612
|
+
components: [],
|
|
613
|
+
functions: [
|
|
614
|
+
{
|
|
615
|
+
name: 'fnWellTested',
|
|
616
|
+
filePath: 'a.ts',
|
|
617
|
+
testFile: 'a.test.ts',
|
|
618
|
+
},
|
|
619
|
+
{
|
|
620
|
+
name: 'fnThinCoverage',
|
|
621
|
+
filePath: 'b.ts',
|
|
622
|
+
testFile: 'b.test.ts',
|
|
623
|
+
},
|
|
624
|
+
{
|
|
625
|
+
name: 'fnAlsoThin',
|
|
626
|
+
filePath: 'c.ts',
|
|
627
|
+
testFile: 'c.test.ts',
|
|
628
|
+
},
|
|
629
|
+
],
|
|
630
|
+
scenarioCounts: {},
|
|
631
|
+
testFileExistence: {
|
|
632
|
+
'a.test.ts': true,
|
|
633
|
+
'b.test.ts': true,
|
|
634
|
+
'c.test.ts': true,
|
|
635
|
+
},
|
|
636
|
+
testResults: {
|
|
637
|
+
'a.test.ts': { passing: true, hasEntityNameDescribe: true },
|
|
638
|
+
'b.test.ts': { passing: true, hasEntityNameDescribe: true },
|
|
639
|
+
'c.test.ts': { passing: true, hasEntityNameDescribe: true },
|
|
640
|
+
},
|
|
641
|
+
testCaseCounts: { fnWellTested: 5, fnThinCoverage: 2, fnAlsoThin: 1 },
|
|
642
|
+
});
|
|
643
|
+
expect(result.summary.functionsThinCoverage).toBe(2);
|
|
644
|
+
});
|
|
645
|
+
it('should not count failing functions in functionsThinCoverage', () => {
|
|
646
|
+
const result = computeAudit({
|
|
647
|
+
components: [],
|
|
648
|
+
functions: [
|
|
649
|
+
{
|
|
650
|
+
name: 'fnFailing',
|
|
651
|
+
filePath: 'a.ts',
|
|
652
|
+
testFile: 'a.test.ts',
|
|
653
|
+
},
|
|
654
|
+
],
|
|
655
|
+
scenarioCounts: {},
|
|
656
|
+
testFileExistence: { 'a.test.ts': true },
|
|
657
|
+
testResults: {
|
|
658
|
+
'a.test.ts': { passing: false, hasEntityNameDescribe: true },
|
|
659
|
+
},
|
|
660
|
+
testCaseCounts: { fnFailing: 1 },
|
|
661
|
+
});
|
|
662
|
+
expect(result.summary.functionsThinCoverage).toBe(0);
|
|
663
|
+
});
|
|
664
|
+
it('should not block allPassing due to thin test coverage', () => {
|
|
665
|
+
const result = computeAudit({
|
|
666
|
+
components: [],
|
|
667
|
+
functions: [
|
|
668
|
+
{
|
|
669
|
+
name: 'fnThin',
|
|
670
|
+
filePath: 'a.ts',
|
|
671
|
+
testFile: 'a.test.ts',
|
|
672
|
+
},
|
|
673
|
+
],
|
|
674
|
+
scenarioCounts: {},
|
|
675
|
+
testFileExistence: { 'a.test.ts': true },
|
|
676
|
+
testResults: {
|
|
677
|
+
'a.test.ts': { passing: true, hasEntityNameDescribe: true },
|
|
678
|
+
},
|
|
679
|
+
testCaseCounts: { fnThin: 1 },
|
|
680
|
+
});
|
|
681
|
+
expect(result.summary.allPassing).toBe(true);
|
|
682
|
+
expect(result.summary.functionsThinCoverage).toBe(1);
|
|
683
|
+
});
|
|
684
|
+
it('should default functionsThinCoverage to 0 when no testCaseCounts provided', () => {
|
|
685
|
+
const result = computeAudit({
|
|
686
|
+
components: [],
|
|
687
|
+
functions: [
|
|
688
|
+
{
|
|
689
|
+
name: 'fn',
|
|
690
|
+
filePath: 'a.ts',
|
|
691
|
+
testFile: 'a.test.ts',
|
|
692
|
+
},
|
|
693
|
+
],
|
|
694
|
+
scenarioCounts: {},
|
|
695
|
+
testFileExistence: { 'a.test.ts': true },
|
|
696
|
+
testResults: {
|
|
697
|
+
'a.test.ts': { passing: true, hasEntityNameDescribe: true },
|
|
698
|
+
},
|
|
699
|
+
});
|
|
700
|
+
expect(result.summary.functionsThinCoverage).toBe(0);
|
|
701
|
+
});
|
|
566
702
|
});
|
|
567
703
|
// ── filterGlossaryByChangeStatus ──────────────────────────────────
|
|
568
704
|
describe('filterGlossaryByChangeStatus', () => {
|