@evolith/smart-cli 0.0.2-beta → 0.0.3-beta

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.
Files changed (135) hide show
  1. package/dist/app.module.js +0 -2
  2. package/dist/app.module.js.map +1 -1
  3. package/dist/app.module.spec.d.ts +1 -0
  4. package/dist/app.module.spec.js +305 -0
  5. package/dist/app.module.spec.js.map +1 -0
  6. package/dist/commands/adr/adr.command.spec.d.ts +1 -0
  7. package/dist/commands/adr/adr.command.spec.js +409 -0
  8. package/dist/commands/adr/adr.command.spec.js.map +1 -0
  9. package/dist/commands/architecture/scaffold.command.spec.d.ts +1 -0
  10. package/dist/commands/architecture/scaffold.command.spec.js +207 -0
  11. package/dist/commands/architecture/scaffold.command.spec.js.map +1 -0
  12. package/dist/commands/completion/completion.command.spec.d.ts +1 -0
  13. package/dist/commands/completion/completion.command.spec.js +240 -0
  14. package/dist/commands/completion/completion.command.spec.js.map +1 -0
  15. package/dist/commands/docs/docs.command.spec.d.ts +1 -0
  16. package/dist/commands/docs/docs.command.spec.js +87 -0
  17. package/dist/commands/docs/docs.command.spec.js.map +1 -0
  18. package/dist/commands/drift/drift.command.spec.d.ts +1 -0
  19. package/dist/commands/drift/drift.command.spec.js +327 -0
  20. package/dist/commands/drift/drift.command.spec.js.map +1 -0
  21. package/dist/commands/history/history.command.spec.d.ts +1 -0
  22. package/dist/commands/history/history.command.spec.js +392 -0
  23. package/dist/commands/history/history.command.spec.js.map +1 -0
  24. package/dist/commands/init/agents.command.spec.js +398 -0
  25. package/dist/commands/init/agents.command.spec.js.map +1 -1
  26. package/dist/commands/init/init.command.spec.d.ts +1 -0
  27. package/dist/commands/init/init.command.spec.js +272 -0
  28. package/dist/commands/init/init.command.spec.js.map +1 -0
  29. package/dist/commands/init/upgrade.command.spec.d.ts +1 -0
  30. package/dist/commands/init/upgrade.command.spec.js +378 -0
  31. package/dist/commands/init/upgrade.command.spec.js.map +1 -0
  32. package/dist/commands/mcp/mcp-serve.command.spec.d.ts +1 -0
  33. package/dist/commands/mcp/mcp-serve.command.spec.js +58 -0
  34. package/dist/commands/mcp/mcp-serve.command.spec.js.map +1 -0
  35. package/dist/commands/sdlc/generate-domain.command.spec.d.ts +1 -0
  36. package/dist/commands/sdlc/generate-domain.command.spec.js +47 -0
  37. package/dist/commands/sdlc/generate-domain.command.spec.js.map +1 -0
  38. package/dist/commands/sdlc/handoff.command.spec.d.ts +1 -0
  39. package/dist/commands/sdlc/handoff.command.spec.js +395 -0
  40. package/dist/commands/sdlc/handoff.command.spec.js.map +1 -0
  41. package/dist/commands/sdlc/sdlc.command.spec.d.ts +1 -0
  42. package/dist/commands/sdlc/sdlc.command.spec.js +45 -0
  43. package/dist/commands/sdlc/sdlc.command.spec.js.map +1 -0
  44. package/dist/commands/standards/standards.command.spec.d.ts +1 -0
  45. package/dist/commands/standards/standards.command.spec.js +311 -0
  46. package/dist/commands/standards/standards.command.spec.js.map +1 -0
  47. package/dist/commands/validate/validate.command.spec.d.ts +1 -0
  48. package/dist/commands/validate/validate.command.spec.js +368 -0
  49. package/dist/commands/validate/validate.command.spec.js.map +1 -0
  50. package/dist/core/abstractions/providers/logger.provider.spec.d.ts +1 -0
  51. package/dist/core/abstractions/providers/logger.provider.spec.js +212 -0
  52. package/dist/core/abstractions/providers/logger.provider.spec.js.map +1 -0
  53. package/dist/core/di/container.spec.js +164 -0
  54. package/dist/core/di/container.spec.js.map +1 -1
  55. package/dist/core/mcp/metrics.service.spec.d.ts +1 -0
  56. package/dist/core/mcp/metrics.service.spec.js +159 -0
  57. package/dist/core/mcp/metrics.service.spec.js.map +1 -0
  58. package/dist/core/mcp/prompts/index.js +36 -0
  59. package/dist/core/mcp/prompts/index.js.map +1 -1
  60. package/dist/core/mcp/prompts/index.spec.d.ts +1 -0
  61. package/dist/core/mcp/prompts/index.spec.js +150 -0
  62. package/dist/core/mcp/prompts/index.spec.js.map +1 -0
  63. package/dist/core/mcp/resources/index.js +16 -0
  64. package/dist/core/mcp/resources/index.js.map +1 -1
  65. package/dist/core/mcp/resources/index.spec.d.ts +1 -0
  66. package/dist/core/mcp/resources/index.spec.js +212 -0
  67. package/dist/core/mcp/resources/index.spec.js.map +1 -0
  68. package/dist/core/mcp/server.d.ts +2 -1
  69. package/dist/core/mcp/server.js +256 -5
  70. package/dist/core/mcp/server.js.map +1 -1
  71. package/dist/core/mcp/server.spec.d.ts +1 -0
  72. package/dist/core/mcp/server.spec.js +563 -0
  73. package/dist/core/mcp/server.spec.js.map +1 -0
  74. package/dist/core/mcp/tools/agent.spec.d.ts +1 -0
  75. package/dist/core/mcp/tools/agent.spec.js +171 -0
  76. package/dist/core/mcp/tools/agent.spec.js.map +1 -0
  77. package/dist/core/mcp/tools/architecture.d.ts +2 -0
  78. package/dist/core/mcp/tools/architecture.js +68 -0
  79. package/dist/core/mcp/tools/architecture.js.map +1 -1
  80. package/dist/core/mcp/tools/architecture.spec.d.ts +1 -0
  81. package/dist/core/mcp/tools/architecture.spec.js +145 -0
  82. package/dist/core/mcp/tools/architecture.spec.js.map +1 -0
  83. package/dist/core/mcp/tools/moscow.d.ts +30 -0
  84. package/dist/core/mcp/tools/moscow.js +113 -0
  85. package/dist/core/mcp/tools/moscow.js.map +1 -0
  86. package/dist/core/mcp/tools/moscow.spec.d.ts +1 -0
  87. package/dist/core/mcp/tools/moscow.spec.js +209 -0
  88. package/dist/core/mcp/tools/moscow.spec.js.map +1 -0
  89. package/dist/core/mcp/tools/sdlc.js +2 -1
  90. package/dist/core/mcp/tools/sdlc.js.map +1 -1
  91. package/dist/core/mcp/tools/sdlc.spec.d.ts +1 -0
  92. package/dist/core/mcp/tools/sdlc.spec.js +170 -0
  93. package/dist/core/mcp/tools/sdlc.spec.js.map +1 -0
  94. package/dist/core/mcp/tools/validate.spec.d.ts +1 -0
  95. package/dist/core/mcp/tools/validate.spec.js +130 -0
  96. package/dist/core/mcp/tools/validate.spec.js.map +1 -0
  97. package/dist/core/mcp/watcher.service.spec.js +109 -8
  98. package/dist/core/mcp/watcher.service.spec.js.map +1 -1
  99. package/dist/core/observability/error-reporter.spec.d.ts +1 -0
  100. package/dist/core/observability/error-reporter.spec.js +291 -0
  101. package/dist/core/observability/error-reporter.spec.js.map +1 -0
  102. package/dist/core/observability/structured-logger.spec.d.ts +1 -0
  103. package/dist/core/observability/structured-logger.spec.js +197 -0
  104. package/dist/core/observability/structured-logger.spec.js.map +1 -0
  105. package/dist/core/observability/timing.spec.d.ts +1 -0
  106. package/dist/core/observability/timing.spec.js +216 -0
  107. package/dist/core/observability/timing.spec.js.map +1 -0
  108. package/dist/core/upgrade/satellite-upgrade.service.spec.js +121 -101
  109. package/dist/core/upgrade/satellite-upgrade.service.spec.js.map +1 -1
  110. package/dist/core/validators/deep-architecture-analyzer.d.ts +58 -0
  111. package/dist/core/validators/deep-architecture-analyzer.js +333 -0
  112. package/dist/core/validators/deep-architecture-analyzer.js.map +1 -0
  113. package/dist/core/validators/deep-architecture-analyzer.spec.d.ts +1 -0
  114. package/dist/core/validators/deep-architecture-analyzer.spec.js +216 -0
  115. package/dist/core/validators/deep-architecture-analyzer.spec.js.map +1 -0
  116. package/dist/core/validators/phase-gate-validator.service.js +3 -1
  117. package/dist/core/validators/phase-gate-validator.service.js.map +1 -1
  118. package/dist/core/validators/ruleset-validator-architecture.spec.js +2 -2
  119. package/dist/core/validators/ruleset-validator-architecture.spec.js.map +1 -1
  120. package/dist/core/validators/ruleset-validator.service.js +7 -7
  121. package/dist/core/validators/ruleset-validator.service.js.map +1 -1
  122. package/dist/core/validators/ruleset-validator.service.spec.js +347 -0
  123. package/dist/core/validators/ruleset-validator.service.spec.js.map +1 -1
  124. package/dist/domain/services/index.d.ts +1 -0
  125. package/dist/domain/services/index.js +3 -1
  126. package/dist/domain/services/index.js.map +1 -1
  127. package/dist/domain/services/moscow-prioritization.service.d.ts +44 -0
  128. package/dist/domain/services/moscow-prioritization.service.js +213 -0
  129. package/dist/domain/services/moscow-prioritization.service.js.map +1 -0
  130. package/dist/domain/services/moscow-prioritization.service.spec.d.ts +1 -0
  131. package/dist/domain/services/moscow-prioritization.service.spec.js +285 -0
  132. package/dist/domain/services/moscow-prioritization.service.spec.js.map +1 -0
  133. package/dist/domain/services/standards.service.spec.js +461 -1
  134. package/dist/domain/services/standards.service.spec.js.map +1 -1
  135. package/package.json +2 -2
@@ -0,0 +1 @@
1
+ {"version":3,"file":"upgrade.command.spec.js","sourceRoot":"","sources":["../../../src/commands/init/upgrade.command.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const mcp_serve_command_1 = require("./mcp-serve.command");
4
+ jest.mock('../../core/mcp/server', () => ({
5
+ startMcpServer: jest.fn().mockResolvedValue(undefined),
6
+ }));
7
+ jest.mock('../../core/validators/ruleset-validator.service', () => ({
8
+ RulesetValidatorService: jest.fn().mockImplementation(() => ({})),
9
+ }));
10
+ describe('McpServeCommand', () => {
11
+ let command;
12
+ beforeEach(() => {
13
+ command = new mcp_serve_command_1.McpServeCommand();
14
+ jest.clearAllMocks();
15
+ jest.spyOn(console, 'log').mockImplementation(() => { });
16
+ });
17
+ describe('run', () => {
18
+ it('should start MCP server with stdio transport by default', async () => {
19
+ await command.run([], {});
20
+ expect(console.log).toHaveBeenCalledWith(expect.stringContaining('stdio'));
21
+ });
22
+ it('should start MCP server with http transport when specified', async () => {
23
+ await command.run([], { transport: 'http', port: 3000 });
24
+ expect(console.log).toHaveBeenCalledWith(expect.stringContaining('HTTP'));
25
+ });
26
+ it('should show API key enabled message when apiKey provided', async () => {
27
+ await command.run([], { transport: 'http', port: 3000, apiKey: 'test-key' });
28
+ expect(console.log).toHaveBeenCalledWith(expect.stringContaining('API key authentication enabled'));
29
+ });
30
+ it('should handle version action', async () => {
31
+ await command.run(['version'], {});
32
+ expect(console.log).toHaveBeenCalledWith('Evolith MCP Server v1.0.0');
33
+ });
34
+ it('should warn about unknown action', async () => {
35
+ await command.run(['unknown'], {});
36
+ expect(console.log).toHaveBeenCalledWith(expect.stringContaining('Unknown action'));
37
+ });
38
+ });
39
+ describe('option parsers', () => {
40
+ it('should parse transport option', () => {
41
+ const result = command.parseTransport('http');
42
+ expect(result).toBe('http');
43
+ });
44
+ it('should parse port option', () => {
45
+ const result = command.parsePort('8080');
46
+ expect(result).toBe(8080);
47
+ });
48
+ it('should default port to 3000 when invalid', () => {
49
+ const result = command.parsePort('invalid');
50
+ expect(result).toBe(3000);
51
+ });
52
+ it('should parse api-key option', () => {
53
+ const result = command.parseApiKey('secret-key');
54
+ expect(result).toBe('secret-key');
55
+ });
56
+ });
57
+ });
58
+ //# sourceMappingURL=mcp-serve.command.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-serve.command.spec.js","sourceRoot":"","sources":["../../../src/commands/mcp/mcp-serve.command.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const generate_domain_command_1 = require("./generate-domain.command");
4
+ describe('GenerateDomainCommand', () => {
5
+ let command;
6
+ let logSpy;
7
+ let errorSpy;
8
+ beforeEach(() => {
9
+ command = new generate_domain_command_1.GenerateDomainCommand();
10
+ logSpy = jest.spyOn(console, 'log').mockImplementation(() => { });
11
+ errorSpy = jest.spyOn(console, 'error').mockImplementation(() => { });
12
+ });
13
+ afterEach(() => {
14
+ logSpy.mockRestore();
15
+ errorSpy.mockRestore();
16
+ });
17
+ describe('run', () => {
18
+ it('should show error when target is missing', async () => {
19
+ await command.run([], { from: 'ddd-model.md' });
20
+ expect(errorSpy).toHaveBeenCalledWith(expect.stringContaining('Error'));
21
+ });
22
+ it('should show error when from is missing', async () => {
23
+ await command.run(['domain'], {});
24
+ expect(errorSpy).toHaveBeenCalledWith(expect.stringContaining('Error'));
25
+ });
26
+ it('should show error when both are missing', async () => {
27
+ await command.run([], {});
28
+ expect(errorSpy).toHaveBeenCalledWith(expect.stringContaining('Error'));
29
+ });
30
+ it('should scaffold domain when target and from are provided', async () => {
31
+ await command.run(['domain'], { from: 'ddd-model.md' });
32
+ expect(logSpy).toHaveBeenCalledWith(expect.stringContaining('Scaffolding domain'));
33
+ expect(logSpy).toHaveBeenCalledWith(expect.stringContaining('Parsing Markdown AST'));
34
+ expect(logSpy).toHaveBeenCalledWith(expect.stringContaining('Extracting Mermaid'));
35
+ expect(logSpy).toHaveBeenCalledWith(expect.stringContaining('Translating'));
36
+ expect(logSpy).toHaveBeenCalledWith(expect.stringContaining('Scaffolding Hexagonal'));
37
+ expect(logSpy).toHaveBeenCalledWith(expect.stringContaining('completed successfully'));
38
+ });
39
+ });
40
+ describe('parseFrom', () => {
41
+ it('should return the value', () => {
42
+ const result = command.parseFrom('path/to/file.md');
43
+ expect(result).toBe('path/to/file.md');
44
+ });
45
+ });
46
+ });
47
+ //# sourceMappingURL=generate-domain.command.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-domain.command.spec.js","sourceRoot":"","sources":["../../../src/commands/sdlc/generate-domain.command.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,395 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ const handoff_command_1 = require("./handoff.command");
37
+ const p = __importStar(require("@clack/prompts"));
38
+ const container_1 = require("../../core/di/container");
39
+ const catalog_loader_1 = require("../../infrastructure/catalog/catalog-loader");
40
+ jest.mock('@clack/prompts');
41
+ jest.mock('../../core/di/container');
42
+ jest.mock('../../infrastructure/catalog/catalog-loader');
43
+ jest.mock('../../application/services', () => {
44
+ return {
45
+ PhaseTransitionUseCase: jest.fn().mockImplementation(() => ({
46
+ execute: jest.fn().mockResolvedValue({
47
+ success: true,
48
+ from: 'phase-1',
49
+ to: 'phase-2',
50
+ gateResults: [],
51
+ executedTools: [],
52
+ warnings: [],
53
+ errors: [],
54
+ }),
55
+ })),
56
+ };
57
+ });
58
+ const mockSelect = p.select;
59
+ const mockConfirm = p.confirm;
60
+ const mockMultiselect = p.multiselect;
61
+ const mockSpinner = p.spinner;
62
+ const mockIntro = p.intro;
63
+ const mockOutro = p.outro;
64
+ const mockGroup = p.group;
65
+ const mockNote = p.note;
66
+ const mockCancel = p.cancel;
67
+ const mockLog = p.log;
68
+ const mockSpinnerInstance = {
69
+ start: jest.fn(),
70
+ stop: jest.fn(),
71
+ };
72
+ const mockFs = {
73
+ exists: jest.fn(),
74
+ existsSync: jest.fn().mockReturnValue(false),
75
+ readJson: jest.fn(),
76
+ writeJson: jest.fn(),
77
+ ensureDir: jest.fn(),
78
+ writeFile: jest.fn(),
79
+ readFile: jest.fn(),
80
+ };
81
+ const mockContainer = {
82
+ createFileSystem: jest.fn().mockReturnValue(mockFs),
83
+ createLogger: jest.fn().mockReturnValue({ info: jest.fn(), warn: jest.fn(), error: jest.fn(), debug: jest.fn() }),
84
+ };
85
+ const mockToolCatalog = {
86
+ phases: {
87
+ 'phase-1': {
88
+ toolGroups: {
89
+ linting: {
90
+ question: 'Select linting tool',
91
+ defaultOption: 'eslint',
92
+ options: [{ value: 'eslint', label: 'ESLint' }],
93
+ tools: ['eslint'],
94
+ },
95
+ },
96
+ },
97
+ 'phase-2': {
98
+ toolGroups: {
99
+ governance: {
100
+ question: 'Select governance tool',
101
+ defaultOption: 'adr',
102
+ options: [{ value: 'adr', label: 'ADR' }],
103
+ tools: ['adr'],
104
+ },
105
+ },
106
+ },
107
+ },
108
+ toolMetadata: {},
109
+ };
110
+ const mockExecute = jest.fn().mockResolvedValue({
111
+ success: true,
112
+ from: 'phase-1',
113
+ to: 'phase-2',
114
+ gateResults: [],
115
+ executedTools: [],
116
+ warnings: [],
117
+ errors: [],
118
+ });
119
+ const { PhaseTransitionUseCase } = require('../../application/services');
120
+ describe('HandoffCommand', () => {
121
+ let command;
122
+ beforeEach(() => {
123
+ jest.clearAllMocks();
124
+ container_1.getContainer.mockReturnValue(mockContainer);
125
+ catalog_loader_1.catalogLoader.loadToolCatalog.mockReturnValue(mockToolCatalog);
126
+ mockSpinner.mockReturnValue(mockSpinnerInstance);
127
+ mockExecute.mockResolvedValue({
128
+ success: true,
129
+ from: 'phase-1',
130
+ to: 'phase-2',
131
+ gateResults: [],
132
+ executedTools: [],
133
+ warnings: [],
134
+ errors: [],
135
+ });
136
+ PhaseTransitionUseCase.mockImplementation(() => ({
137
+ execute: mockExecute,
138
+ }));
139
+ command = new handoff_command_1.HandoffCommand();
140
+ });
141
+ describe('run - non-interactive mode', () => {
142
+ it('should execute handoff with from and to options', async () => {
143
+ await command.run([], { from: 'phase-1', to: 'phase-2' });
144
+ expect(mockContainer.createFileSystem).toHaveBeenCalled();
145
+ expect(mockExecute).toHaveBeenCalledWith('phase-1', 'phase-2', [], expect.any(String));
146
+ });
147
+ it('should exit with code 1 on failed transition', async () => {
148
+ mockExecute.mockResolvedValueOnce({
149
+ success: false,
150
+ from: 'phase-5',
151
+ to: 'phase-1',
152
+ gateResults: [],
153
+ executedTools: [],
154
+ warnings: [],
155
+ errors: ['Invalid transition'],
156
+ });
157
+ const exitSpy = jest.spyOn(process, 'exit').mockImplementation((() => { }));
158
+ await command.run([], { from: 'phase-5', to: 'phase-1' });
159
+ expect(exitSpy).toHaveBeenCalledWith(1);
160
+ exitSpy.mockRestore();
161
+ });
162
+ it('should pass tools array to use case when provided', async () => {
163
+ await command.run([], { from: 'phase-1', to: 'phase-2' });
164
+ expect(mockExecute).toHaveBeenCalledWith('phase-1', 'phase-2', [], expect.any(String));
165
+ });
166
+ });
167
+ describe('run - interactive mode', () => {
168
+ it('should run interactive handoff flow', async () => {
169
+ mockGroup.mockImplementation(async (callbacks) => {
170
+ const results = {};
171
+ results.fromPhase = await callbacks.fromPhase();
172
+ results.toPhase = await callbacks.toPhase({ results });
173
+ results.validateGates = await callbacks.validateGates();
174
+ results.uploadEvidence = await callbacks.uploadEvidence();
175
+ results.selectTools = await callbacks.selectTools();
176
+ results.tools = await callbacks.tools({ results });
177
+ results.forceHandoff = await callbacks.forceHandoff();
178
+ return results;
179
+ });
180
+ mockSelect
181
+ .mockResolvedValueOnce('phase-1')
182
+ .mockResolvedValueOnce('phase-2');
183
+ mockConfirm
184
+ .mockResolvedValueOnce(true)
185
+ .mockResolvedValueOnce(true)
186
+ .mockResolvedValueOnce(true)
187
+ .mockResolvedValueOnce(true)
188
+ .mockResolvedValueOnce(false);
189
+ mockMultiselect.mockResolvedValue(['eslint']);
190
+ await command.run([], {});
191
+ expect(mockIntro).toHaveBeenCalled();
192
+ expect(mockGroup).toHaveBeenCalled();
193
+ expect(mockSpinnerInstance.start).toHaveBeenCalled();
194
+ expect(mockSpinnerInstance.stop).toHaveBeenCalled();
195
+ });
196
+ it('should display completion message on success', async () => {
197
+ mockGroup.mockImplementation(async (callbacks) => {
198
+ const results = {};
199
+ results.fromPhase = await callbacks.fromPhase();
200
+ results.toPhase = await callbacks.toPhase({ results });
201
+ results.validateGates = await callbacks.validateGates();
202
+ results.uploadEvidence = await callbacks.uploadEvidence();
203
+ results.selectTools = await callbacks.selectTools();
204
+ results.tools = await callbacks.tools({ results });
205
+ results.forceHandoff = await callbacks.forceHandoff();
206
+ return results;
207
+ });
208
+ mockSelect
209
+ .mockResolvedValueOnce('phase-0')
210
+ .mockResolvedValueOnce('phase-1');
211
+ mockConfirm
212
+ .mockResolvedValueOnce(true)
213
+ .mockResolvedValueOnce(true)
214
+ .mockResolvedValueOnce(false)
215
+ .mockResolvedValueOnce(false);
216
+ await command.run([], {});
217
+ expect(mockOutro).toHaveBeenCalledWith(expect.stringContaining('Completed'));
218
+ });
219
+ it('should handle handoff failure', async () => {
220
+ mockExecute.mockResolvedValueOnce({
221
+ success: false,
222
+ from: 'phase-5',
223
+ to: '',
224
+ gateResults: [{ id: 'G1', passed: false, description: 'Failed', required: true }],
225
+ executedTools: [],
226
+ warnings: [],
227
+ errors: ['Transition failed'],
228
+ });
229
+ mockGroup.mockImplementation(async (callbacks) => {
230
+ const results = {};
231
+ results.fromPhase = await callbacks.fromPhase();
232
+ results.toPhase = await callbacks.toPhase({ results });
233
+ results.validateGates = await callbacks.validateGates();
234
+ results.uploadEvidence = await callbacks.uploadEvidence();
235
+ results.selectTools = await callbacks.selectTools();
236
+ results.tools = await callbacks.tools({ results });
237
+ results.forceHandoff = await callbacks.forceHandoff();
238
+ return results;
239
+ });
240
+ mockSelect
241
+ .mockResolvedValueOnce('phase-5')
242
+ .mockResolvedValueOnce('');
243
+ mockConfirm
244
+ .mockResolvedValueOnce(true)
245
+ .mockResolvedValueOnce(true)
246
+ .mockResolvedValueOnce(false)
247
+ .mockResolvedValueOnce(false);
248
+ await command.run([], {});
249
+ expect(mockOutro).toHaveBeenCalledWith(expect.stringContaining('Failed'));
250
+ });
251
+ it('should skip tool selection when selectTools is false', async () => {
252
+ mockGroup.mockImplementation(async (callbacks) => {
253
+ const results = {};
254
+ results.fromPhase = await callbacks.fromPhase();
255
+ results.toPhase = await callbacks.toPhase({ results });
256
+ results.validateGates = await callbacks.validateGates();
257
+ results.uploadEvidence = await callbacks.uploadEvidence();
258
+ results.selectTools = await callbacks.selectTools();
259
+ results.tools = await callbacks.tools({ results });
260
+ results.forceHandoff = await callbacks.forceHandoff();
261
+ return results;
262
+ });
263
+ mockSelect
264
+ .mockResolvedValueOnce('phase-1')
265
+ .mockResolvedValueOnce('phase-2');
266
+ mockConfirm
267
+ .mockResolvedValueOnce(true)
268
+ .mockResolvedValueOnce(true)
269
+ .mockResolvedValueOnce(false)
270
+ .mockResolvedValueOnce(false);
271
+ await command.run([], {});
272
+ expect(mockMultiselect).not.toHaveBeenCalled();
273
+ });
274
+ it('should show next steps on successful handoff', async () => {
275
+ mockGroup.mockImplementation(async (callbacks) => {
276
+ const results = {};
277
+ results.fromPhase = await callbacks.fromPhase();
278
+ results.toPhase = await callbacks.toPhase({ results });
279
+ results.validateGates = await callbacks.validateGates();
280
+ results.uploadEvidence = await callbacks.uploadEvidence();
281
+ results.selectTools = await callbacks.selectTools();
282
+ results.tools = await callbacks.tools({ results });
283
+ results.forceHandoff = await callbacks.forceHandoff();
284
+ return results;
285
+ });
286
+ mockSelect
287
+ .mockResolvedValueOnce('phase-1')
288
+ .mockResolvedValueOnce('phase-2');
289
+ mockConfirm
290
+ .mockResolvedValueOnce(true)
291
+ .mockResolvedValueOnce(true)
292
+ .mockResolvedValueOnce(false)
293
+ .mockResolvedValueOnce(false);
294
+ await command.run([], {});
295
+ expect(mockNote).toHaveBeenCalled();
296
+ });
297
+ it('should display gate validation results when present', async () => {
298
+ mockExecute.mockResolvedValueOnce({
299
+ success: true,
300
+ from: 'phase-0',
301
+ to: 'phase-1',
302
+ gateResults: [
303
+ { id: 'PG1-01', passed: true, description: 'package.json exists', required: true },
304
+ { id: 'PG1-02', passed: false, description: 'src/ exists', required: false },
305
+ ],
306
+ executedTools: ['eslint'],
307
+ warnings: [],
308
+ errors: [],
309
+ });
310
+ mockGroup.mockImplementation(async (callbacks) => {
311
+ const results = {};
312
+ results.fromPhase = await callbacks.fromPhase();
313
+ results.toPhase = await callbacks.toPhase({ results });
314
+ results.validateGates = await callbacks.validateGates();
315
+ results.uploadEvidence = await callbacks.uploadEvidence();
316
+ results.selectTools = await callbacks.selectTools();
317
+ results.tools = await callbacks.tools({ results });
318
+ results.forceHandoff = await callbacks.forceHandoff();
319
+ return results;
320
+ });
321
+ mockSelect
322
+ .mockResolvedValueOnce('phase-0')
323
+ .mockResolvedValueOnce('phase-1');
324
+ mockConfirm
325
+ .mockResolvedValueOnce(true)
326
+ .mockResolvedValueOnce(true)
327
+ .mockResolvedValueOnce(false)
328
+ .mockResolvedValueOnce(false);
329
+ await command.run([], {});
330
+ expect(mockOutro).toHaveBeenCalledWith(expect.stringContaining('Completed'));
331
+ });
332
+ });
333
+ describe('getToolGroupsForPhase', () => {
334
+ it('should return tool groups for valid phase', () => {
335
+ const command_any = command;
336
+ const result = command_any.getToolGroupsForPhase('phase-1');
337
+ expect(result).toHaveProperty('linting');
338
+ });
339
+ it('should return empty object for invalid phase', () => {
340
+ const command_any = command;
341
+ const result = command_any.getToolGroupsForPhase('invalid-phase');
342
+ expect(result).toEqual({});
343
+ });
344
+ });
345
+ describe('getNextSteps', () => {
346
+ it('should return next steps for phase-1', () => {
347
+ const command_any = command;
348
+ const result = command_any.getNextSteps('phase-1');
349
+ expect(result).toContain('evolith validate');
350
+ });
351
+ it('should return next steps for phase-2', () => {
352
+ const command_any = command;
353
+ const result = command_any.getNextSteps('phase-2');
354
+ expect(result).toContain('rulesets');
355
+ });
356
+ it('should return next steps for phase-3', () => {
357
+ const command_any = command;
358
+ const result = command_any.getNextSteps('phase-3');
359
+ expect(result).toContain('ADRs');
360
+ });
361
+ it('should return next steps for phase-4', () => {
362
+ const command_any = command;
363
+ const result = command_any.getNextSteps('phase-4');
364
+ expect(result).toContain('CI/CD');
365
+ });
366
+ it('should return next steps for phase-5', () => {
367
+ const command_any = command;
368
+ const result = command_any.getNextSteps('phase-5');
369
+ expect(result).toContain('DORA');
370
+ });
371
+ it('should return empty string for unknown phase', () => {
372
+ const command_any = command;
373
+ const result = command_any.getNextSteps('unknown');
374
+ expect(result).toBe('');
375
+ });
376
+ });
377
+ describe('option parsers', () => {
378
+ it('parseFrom should return value', () => {
379
+ expect(command.parseFrom('phase-1')).toBe('phase-1');
380
+ });
381
+ it('parseTo should return value', () => {
382
+ expect(command.parseTo('phase-2')).toBe('phase-2');
383
+ });
384
+ it('parseArtifacts should return true', () => {
385
+ expect(command.parseArtifacts()).toBe(true);
386
+ });
387
+ it('parseValidate should return true', () => {
388
+ expect(command.parseValidate()).toBe(true);
389
+ });
390
+ it('parseForce should return true', () => {
391
+ expect(command.parseForce()).toBe(true);
392
+ });
393
+ });
394
+ });
395
+ //# sourceMappingURL=handoff.command.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handoff.command.spec.js","sourceRoot":"","sources":["../../../src/commands/sdlc/handoff.command.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const sdlc_command_1 = require("./sdlc.command");
4
+ describe('SdlcCommand', () => {
5
+ let command;
6
+ let logSpy;
7
+ beforeEach(() => {
8
+ command = new sdlc_command_1.SdlcCommand();
9
+ logSpy = jest.spyOn(console, 'log').mockImplementation(() => { });
10
+ });
11
+ afterEach(() => {
12
+ logSpy.mockRestore();
13
+ });
14
+ describe('run', () => {
15
+ it('should display SDLC header', async () => {
16
+ await command.run([], {});
17
+ expect(logSpy).toHaveBeenCalledWith(expect.stringContaining('Evolith SDLC CLI'));
18
+ });
19
+ it('should list available subcommands', async () => {
20
+ await command.run([], {});
21
+ expect(logSpy).toHaveBeenCalledWith(expect.stringContaining('Available subcommands'));
22
+ });
23
+ it('should display handoff subcommand', async () => {
24
+ await command.run([], {});
25
+ expect(logSpy).toHaveBeenCalledWith(expect.stringContaining('handoff'));
26
+ });
27
+ it('should display generate subcommand', async () => {
28
+ await command.run([], {});
29
+ expect(logSpy).toHaveBeenCalledWith(expect.stringContaining('generate'));
30
+ });
31
+ it('should display gate-status subcommand', async () => {
32
+ await command.run([], {});
33
+ expect(logSpy).toHaveBeenCalledWith(expect.stringContaining('gate-status'));
34
+ });
35
+ it('should display help hint', async () => {
36
+ await command.run([], {});
37
+ expect(logSpy).toHaveBeenCalledWith(expect.stringContaining('evolith sdlc <subcommand> --help'));
38
+ });
39
+ it('should handle passed parameters', async () => {
40
+ await command.run(['some-param'], {});
41
+ expect(logSpy).toHaveBeenCalledWith(expect.stringContaining('Evolith SDLC CLI'));
42
+ });
43
+ });
44
+ });
45
+ //# sourceMappingURL=sdlc.command.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sdlc.command.spec.js","sourceRoot":"","sources":["../../../src/commands/sdlc/sdlc.command.spec.ts"],"names":[],"mappings":";;AAAA,iDAA6C;AAE7C,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;IAC3B,IAAI,OAAoB,CAAC;IACzB,IAAI,MAAwB,CAAC;IAE7B,UAAU,CAAC,GAAG,EAAE;QACd,OAAO,GAAG,IAAI,0BAAW,EAAE,CAAC;QAC5B,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,kBAAkB,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IACnE,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,CAAC,WAAW,EAAE,CAAC;IACvB,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,KAAK,EAAE,GAAG,EAAE;QACnB,EAAE,CAAC,4BAA4B,EAAE,KAAK,IAAI,EAAE;YAC1C,MAAM,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YAE1B,MAAM,CAAC,MAAM,CAAC,CAAC,oBAAoB,CACjC,MAAM,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,CAC5C,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,mCAAmC,EAAE,KAAK,IAAI,EAAE;YACjD,MAAM,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YAE1B,MAAM,CAAC,MAAM,CAAC,CAAC,oBAAoB,CACjC,MAAM,CAAC,gBAAgB,CAAC,uBAAuB,CAAC,CACjD,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,mCAAmC,EAAE,KAAK,IAAI,EAAE;YACjD,MAAM,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YAE1B,MAAM,CAAC,MAAM,CAAC,CAAC,oBAAoB,CACjC,MAAM,CAAC,gBAAgB,CAAC,SAAS,CAAC,CACnC,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,oCAAoC,EAAE,KAAK,IAAI,EAAE;YAClD,MAAM,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YAE1B,MAAM,CAAC,MAAM,CAAC,CAAC,oBAAoB,CACjC,MAAM,CAAC,gBAAgB,CAAC,UAAU,CAAC,CACpC,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,uCAAuC,EAAE,KAAK,IAAI,EAAE;YACrD,MAAM,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YAE1B,MAAM,CAAC,MAAM,CAAC,CAAC,oBAAoB,CACjC,MAAM,CAAC,gBAAgB,CAAC,aAAa,CAAC,CACvC,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,0BAA0B,EAAE,KAAK,IAAI,EAAE;YACxC,MAAM,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YAE1B,MAAM,CAAC,MAAM,CAAC,CAAC,oBAAoB,CACjC,MAAM,CAAC,gBAAgB,CAAC,kCAAkC,CAAC,CAC5D,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,iCAAiC,EAAE,KAAK,IAAI,EAAE;YAC/C,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC,CAAC;YAEtC,MAAM,CAAC,MAAM,CAAC,CAAC,oBAAoB,CACjC,MAAM,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,CAC5C,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}