task-pipeliner 0.2.2 → 0.2.3

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 (168) hide show
  1. package/README.ko.md +17 -1
  2. package/README.md +17 -1
  3. package/dist/index.cjs +18 -16
  4. package/dist/index.js +18 -16
  5. package/dist/task-pipeliner-rs.node +0 -0
  6. package/package.json +10 -1
  7. package/dist/cli/index.d.ts +0 -19
  8. package/dist/cli/index.d.ts.map +0 -1
  9. package/dist/cli/index.js +0 -305
  10. package/dist/cli/index.js.map +0 -1
  11. package/dist/cli/prompts.d.ts +0 -48
  12. package/dist/cli/prompts.d.ts.map +0 -1
  13. package/dist/cli/prompts.js +0 -75
  14. package/dist/cli/prompts.js.map +0 -1
  15. package/dist/cli/ui.d.ts +0 -39
  16. package/dist/cli/ui.d.ts.map +0 -1
  17. package/dist/cli/ui.js +0 -84
  18. package/dist/cli/ui.js.map +0 -1
  19. package/dist/core/__tests__/actual-execution.test.d.ts +0 -2
  20. package/dist/core/__tests__/actual-execution.test.d.ts.map +0 -1
  21. package/dist/core/__tests__/actual-execution.test.js +0 -147
  22. package/dist/core/__tests__/actual-execution.test.js.map +0 -1
  23. package/dist/core/__tests__/base-dir.test.d.ts +0 -2
  24. package/dist/core/__tests__/base-dir.test.d.ts.map +0 -1
  25. package/dist/core/__tests__/base-dir.test.js +0 -146
  26. package/dist/core/__tests__/base-dir.test.js.map +0 -1
  27. package/dist/core/__tests__/built-code-execution.test.d.ts +0 -2
  28. package/dist/core/__tests__/built-code-execution.test.d.ts.map +0 -1
  29. package/dist/core/__tests__/built-code-execution.test.js +0 -48
  30. package/dist/core/__tests__/built-code-execution.test.js.map +0 -1
  31. package/dist/core/__tests__/choose-as-var-condition.test.d.ts +0 -2
  32. package/dist/core/__tests__/choose-as-var-condition.test.d.ts.map +0 -1
  33. package/dist/core/__tests__/choose-as-var-condition.test.js +0 -308
  34. package/dist/core/__tests__/choose-as-var-condition.test.js.map +0 -1
  35. package/dist/core/__tests__/cli-integration.test.d.ts +0 -2
  36. package/dist/core/__tests__/cli-integration.test.d.ts.map +0 -1
  37. package/dist/core/__tests__/cli-integration.test.js +0 -83
  38. package/dist/core/__tests__/cli-integration.test.js.map +0 -1
  39. package/dist/core/__tests__/comprehensive-basic-yaml.test.d.ts +0 -2
  40. package/dist/core/__tests__/comprehensive-basic-yaml.test.d.ts.map +0 -1
  41. package/dist/core/__tests__/comprehensive-basic-yaml.test.js +0 -114
  42. package/dist/core/__tests__/comprehensive-basic-yaml.test.js.map +0 -1
  43. package/dist/core/__tests__/condition-evaluator.test.d.ts +0 -2
  44. package/dist/core/__tests__/condition-evaluator.test.d.ts.map +0 -1
  45. package/dist/core/__tests__/condition-evaluator.test.js +0 -164
  46. package/dist/core/__tests__/condition-evaluator.test.js.map +0 -1
  47. package/dist/core/__tests__/debug-basic-yaml.test.d.ts +0 -2
  48. package/dist/core/__tests__/debug-basic-yaml.test.d.ts.map +0 -1
  49. package/dist/core/__tests__/debug-basic-yaml.test.js +0 -126
  50. package/dist/core/__tests__/debug-basic-yaml.test.js.map +0 -1
  51. package/dist/core/__tests__/example-files.test.d.ts +0 -2
  52. package/dist/core/__tests__/example-files.test.d.ts.map +0 -1
  53. package/dist/core/__tests__/example-files.test.js +0 -199
  54. package/dist/core/__tests__/example-files.test.js.map +0 -1
  55. package/dist/core/__tests__/executor-choice-integration.test.d.ts +0 -2
  56. package/dist/core/__tests__/executor-choice-integration.test.d.ts.map +0 -1
  57. package/dist/core/__tests__/executor-choice-integration.test.js +0 -169
  58. package/dist/core/__tests__/executor-choice-integration.test.js.map +0 -1
  59. package/dist/core/__tests__/executor-choice.test.d.ts +0 -2
  60. package/dist/core/__tests__/executor-choice.test.d.ts.map +0 -1
  61. package/dist/core/__tests__/executor-choice.test.js +0 -170
  62. package/dist/core/__tests__/executor-choice.test.js.map +0 -1
  63. package/dist/core/__tests__/executor-parallel.test.d.ts +0 -2
  64. package/dist/core/__tests__/executor-parallel.test.d.ts.map +0 -1
  65. package/dist/core/__tests__/executor-parallel.test.js +0 -129
  66. package/dist/core/__tests__/executor-parallel.test.js.map +0 -1
  67. package/dist/core/__tests__/executor-prompt.test.d.ts +0 -2
  68. package/dist/core/__tests__/executor-prompt.test.d.ts.map +0 -1
  69. package/dist/core/__tests__/executor-prompt.test.js +0 -147
  70. package/dist/core/__tests__/executor-prompt.test.js.map +0 -1
  71. package/dist/core/__tests__/executor-real-scenario.test.d.ts +0 -2
  72. package/dist/core/__tests__/executor-real-scenario.test.d.ts.map +0 -1
  73. package/dist/core/__tests__/executor-real-scenario.test.js +0 -169
  74. package/dist/core/__tests__/executor-real-scenario.test.js.map +0 -1
  75. package/dist/core/__tests__/file-condition.test.d.ts +0 -2
  76. package/dist/core/__tests__/file-condition.test.d.ts.map +0 -1
  77. package/dist/core/__tests__/file-condition.test.js +0 -172
  78. package/dist/core/__tests__/file-condition.test.js.map +0 -1
  79. package/dist/core/__tests__/final-verification.test.d.ts +0 -2
  80. package/dist/core/__tests__/final-verification.test.d.ts.map +0 -1
  81. package/dist/core/__tests__/final-verification.test.js +0 -56
  82. package/dist/core/__tests__/final-verification.test.js.map +0 -1
  83. package/dist/core/__tests__/parallel-when-condition.test.d.ts +0 -2
  84. package/dist/core/__tests__/parallel-when-condition.test.d.ts.map +0 -1
  85. package/dist/core/__tests__/parallel-when-condition.test.js +0 -155
  86. package/dist/core/__tests__/parallel-when-condition.test.js.map +0 -1
  87. package/dist/core/__tests__/parser.test.d.ts +0 -2
  88. package/dist/core/__tests__/parser.test.d.ts.map +0 -1
  89. package/dist/core/__tests__/parser.test.js +0 -91
  90. package/dist/core/__tests__/parser.test.js.map +0 -1
  91. package/dist/core/__tests__/real-inquirer-test.test.d.ts +0 -2
  92. package/dist/core/__tests__/real-inquirer-test.test.d.ts.map +0 -1
  93. package/dist/core/__tests__/real-inquirer-test.test.js +0 -20
  94. package/dist/core/__tests__/real-inquirer-test.test.js.map +0 -1
  95. package/dist/core/__tests__/reproduce-bug.test.d.ts +0 -2
  96. package/dist/core/__tests__/reproduce-bug.test.d.ts.map +0 -1
  97. package/dist/core/__tests__/reproduce-bug.test.js +0 -85
  98. package/dist/core/__tests__/reproduce-bug.test.js.map +0 -1
  99. package/dist/core/__tests__/timeout-retry.test.d.ts +0 -2
  100. package/dist/core/__tests__/timeout-retry.test.d.ts.map +0 -1
  101. package/dist/core/__tests__/timeout-retry.test.js +0 -184
  102. package/dist/core/__tests__/timeout-retry.test.js.map +0 -1
  103. package/dist/core/__tests__/workflow-validation.test.d.ts +0 -2
  104. package/dist/core/__tests__/workflow-validation.test.d.ts.map +0 -1
  105. package/dist/core/__tests__/workflow-validation.test.js +0 -116
  106. package/dist/core/__tests__/workflow-validation.test.js.map +0 -1
  107. package/dist/core/__tests__/workspace.test.d.ts +0 -2
  108. package/dist/core/__tests__/workspace.test.d.ts.map +0 -1
  109. package/dist/core/__tests__/workspace.test.js +0 -29
  110. package/dist/core/__tests__/workspace.test.js.map +0 -1
  111. package/dist/core/__tests__/yaml-integration.test.d.ts +0 -2
  112. package/dist/core/__tests__/yaml-integration.test.d.ts.map +0 -1
  113. package/dist/core/__tests__/yaml-integration.test.js +0 -114
  114. package/dist/core/__tests__/yaml-integration.test.js.map +0 -1
  115. package/dist/core/__tests__/yaml-scenarios.test.d.ts +0 -2
  116. package/dist/core/__tests__/yaml-scenarios.test.d.ts.map +0 -1
  117. package/dist/core/__tests__/yaml-scenarios.test.js +0 -197
  118. package/dist/core/__tests__/yaml-scenarios.test.js.map +0 -1
  119. package/dist/core/condition-evaluator.d.ts +0 -44
  120. package/dist/core/condition-evaluator.d.ts.map +0 -1
  121. package/dist/core/condition-evaluator.js +0 -121
  122. package/dist/core/condition-evaluator.js.map +0 -1
  123. package/dist/core/executor.d.ts +0 -172
  124. package/dist/core/executor.d.ts.map +0 -1
  125. package/dist/core/executor.js +0 -590
  126. package/dist/core/executor.js.map +0 -1
  127. package/dist/core/history.d.ts +0 -51
  128. package/dist/core/history.d.ts.map +0 -1
  129. package/dist/core/history.js +0 -57
  130. package/dist/core/history.js.map +0 -1
  131. package/dist/core/parser.d.ts +0 -41
  132. package/dist/core/parser.d.ts.map +0 -1
  133. package/dist/core/parser.js +0 -206
  134. package/dist/core/parser.js.map +0 -1
  135. package/dist/core/recorder.d.ts +0 -48
  136. package/dist/core/recorder.d.ts.map +0 -1
  137. package/dist/core/recorder.js +0 -56
  138. package/dist/core/recorder.js.map +0 -1
  139. package/dist/core/rust-task-runner.d.ts +0 -14
  140. package/dist/core/rust-task-runner.d.ts.map +0 -1
  141. package/dist/core/rust-task-runner.js +0 -34
  142. package/dist/core/rust-task-runner.js.map +0 -1
  143. package/dist/core/task-runner.d.ts +0 -63
  144. package/dist/core/task-runner.d.ts.map +0 -1
  145. package/dist/core/task-runner.js +0 -259
  146. package/dist/core/task-runner.js.map +0 -1
  147. package/dist/core/template.d.ts +0 -11
  148. package/dist/core/template.d.ts.map +0 -1
  149. package/dist/core/template.js +0 -36
  150. package/dist/core/template.js.map +0 -1
  151. package/dist/core/workflow-schema.d.ts +0 -31
  152. package/dist/core/workflow-schema.d.ts.map +0 -1
  153. package/dist/core/workflow-schema.js +0 -127
  154. package/dist/core/workflow-schema.js.map +0 -1
  155. package/dist/core/workspace.d.ts +0 -90
  156. package/dist/core/workspace.d.ts.map +0 -1
  157. package/dist/core/workspace.js +0 -143
  158. package/dist/core/workspace.js.map +0 -1
  159. package/dist/index.d.ts.map +0 -1
  160. package/dist/index.js.map +0 -1
  161. package/dist/types/condition.d.ts +0 -62
  162. package/dist/types/condition.d.ts.map +0 -1
  163. package/dist/types/condition.js +0 -6
  164. package/dist/types/condition.js.map +0 -1
  165. package/dist/types/workflow.d.ts +0 -90
  166. package/dist/types/workflow.d.ts.map +0 -1
  167. package/dist/types/workflow.js +0 -2
  168. package/dist/types/workflow.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"executor-prompt.test.js","sourceRoot":"","sources":["../../../src/core/__tests__/executor-prompt.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=executor-real-scenario.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"executor-real-scenario.test.d.ts","sourceRoot":"","sources":["../../../src/core/__tests__/executor-real-scenario.test.ts"],"names":[],"mappings":""}
@@ -1,169 +0,0 @@
1
- import { describe, it, expect, vi, beforeEach } from 'vitest';
2
- import { Executor } from '../executor';
3
- // Mock TaskRunner
4
- const mockRun = vi.fn().mockResolvedValue(true);
5
- vi.mock('../task-runner.js', () => {
6
- return {
7
- TaskRunner: vi.fn().mockImplementation(() => {
8
- return {
9
- run: mockRun,
10
- };
11
- }),
12
- };
13
- });
14
- // Mock ChoicePrompt, TextPrompt
15
- const mockChoicePrompt = vi.fn();
16
- vi.mock('../../cli/prompts.js', () => {
17
- return {
18
- ChoicePrompt: vi.fn().mockImplementation(() => {
19
- return {
20
- prompt: mockChoicePrompt,
21
- };
22
- }),
23
- TextPrompt: vi.fn().mockImplementation(() => {
24
- return {
25
- prompt: vi.fn(),
26
- };
27
- }),
28
- };
29
- });
30
- describe('Executor - Real Scenario Tests', () => {
31
- let executor;
32
- beforeEach(() => {
33
- vi.clearAllMocks();
34
- executor = new Executor();
35
- });
36
- it('should execute basic.yaml EXACT scenario - staging choice', async () => {
37
- // Exactly the same structure as basic.yaml
38
- const workflow = {
39
- name: 'Basic Workflow Example',
40
- steps: [
41
- {
42
- run: 'echo "Building..."',
43
- },
44
- {
45
- run: 'echo "Build started, continuing..."',
46
- },
47
- {
48
- choose: {
49
- message: 'Deploy to which environment?',
50
- options: [
51
- { id: 'staging', label: 'Staging' },
52
- { id: 'prod', label: 'Production' },
53
- ],
54
- },
55
- },
56
- {
57
- when: {
58
- choice: 'staging',
59
- },
60
- run: 'echo "Deploying to staging..."',
61
- },
62
- {
63
- when: {
64
- choice: 'prod',
65
- },
66
- run: 'echo "Deploying to production..."',
67
- },
68
- ],
69
- };
70
- // Select staging
71
- mockChoicePrompt.mockResolvedValueOnce({ id: 'staging', label: 'Staging' });
72
- await executor.execute(workflow);
73
- // Check execution order
74
- const calls = mockRun.mock.calls.map((call) => call[0]);
75
- // Required execution check
76
- expect(calls).toContain('echo "Building..."');
77
- expect(calls).toContain('echo "Build started, continuing..."');
78
- expect(calls).toContain('echo "Deploying to staging..."');
79
- // Should not be executed
80
- expect(calls).not.toContain('echo "Deploying to production..."');
81
- // Check workspace state
82
- const workspace = executor.workspace;
83
- expect(workspace.hasChoice('staging')).toBe(true);
84
- expect(workspace.hasChoice('prod')).toBe(false);
85
- // Check execution count (3 steps executed)
86
- expect(mockRun).toHaveBeenCalledTimes(3);
87
- });
88
- it('should execute basic.yaml EXACT scenario - prod choice', async () => {
89
- const workflow = {
90
- name: 'Basic Workflow Example',
91
- steps: [
92
- {
93
- run: 'echo "Building..."',
94
- },
95
- {
96
- run: 'echo "Build started, continuing..."',
97
- },
98
- {
99
- choose: {
100
- message: 'Deploy to which environment?',
101
- options: [
102
- { id: 'staging', label: 'Staging' },
103
- { id: 'prod', label: 'Production' },
104
- ],
105
- as: 'env',
106
- },
107
- },
108
- {
109
- when: {
110
- var: {
111
- env: 'staging',
112
- },
113
- },
114
- run: 'echo "Deploying to staging..."',
115
- },
116
- {
117
- when: {
118
- var: {
119
- env: 'prod',
120
- },
121
- },
122
- run: 'echo "Deploying to production..."',
123
- },
124
- ],
125
- };
126
- // Select prod
127
- mockChoicePrompt.mockResolvedValueOnce({ id: 'prod', label: 'Production' });
128
- await executor.execute(workflow);
129
- const calls = mockRun.mock.calls.map((call) => call[0]);
130
- expect(calls).toContain('echo "Deploying to production..."');
131
- expect(calls).not.toContain('echo "Deploying to staging..."');
132
- const workspace = executor.workspace;
133
- expect(workspace.hasChoice('prod')).toBe(true);
134
- expect(workspace.hasChoice('staging')).toBe(false);
135
- });
136
- it('should verify step execution order', async () => {
137
- const workflow = {
138
- steps: [
139
- {
140
- run: 'step1',
141
- },
142
- {
143
- choose: {
144
- message: 'Choose?',
145
- options: [{ id: 'opt1', label: 'Option 1' }],
146
- as: 'choice',
147
- },
148
- },
149
- {
150
- when: {
151
- var: {
152
- choice: 'opt1',
153
- },
154
- },
155
- run: 'step2',
156
- },
157
- ],
158
- };
159
- mockChoicePrompt.mockResolvedValueOnce({ id: 'opt1', label: 'Option 1' });
160
- await executor.execute(workflow);
161
- // Check execution order
162
- expect(mockRun.mock.calls[0][0]).toBe('step1');
163
- expect(mockRun.mock.calls[1][0]).toBe('step2');
164
- // step2 should execute after choice is set
165
- const workspace = executor.workspace;
166
- expect(workspace.hasChoice('opt1')).toBe(true);
167
- });
168
- });
169
- //# sourceMappingURL=executor-real-scenario.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"executor-real-scenario.test.js","sourceRoot":"","sources":["../../../src/core/__tests__/executor-real-scenario.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=file-condition.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"file-condition.test.d.ts","sourceRoot":"","sources":["../../../src/core/__tests__/file-condition.test.ts"],"names":[],"mappings":""}
@@ -1,172 +0,0 @@
1
- import { describe, it, expect, vi, beforeEach } from 'vitest';
2
- import { ConditionEvaluator } from '../condition-evaluator';
3
- import { Executor } from '../executor';
4
- import { Workspace } from '../workspace';
5
- // Mock ChoicePrompt, TextPrompt
6
- vi.mock('../../cli/prompts.js', () => {
7
- return {
8
- ChoicePrompt: vi.fn().mockImplementation(() => {
9
- return {
10
- prompt: vi.fn(),
11
- };
12
- }),
13
- TextPrompt: vi.fn().mockImplementation(() => {
14
- return {
15
- prompt: vi.fn(),
16
- };
17
- }),
18
- };
19
- });
20
- // Mock TaskRunner
21
- const mockRun = vi.fn().mockResolvedValue(true);
22
- vi.mock('../task-runner.js', () => {
23
- return {
24
- TaskRunner: vi.fn().mockImplementation(() => {
25
- return {
26
- run: mockRun,
27
- };
28
- }),
29
- };
30
- });
31
- describe('File condition and choice-only when clauses', () => {
32
- let executor;
33
- beforeEach(() => {
34
- vi.clearAllMocks();
35
- executor = new Executor();
36
- });
37
- describe('file condition', () => {
38
- it('should check if file exists', () => {
39
- const workspace = new Workspace();
40
- const evaluator = new ConditionEvaluator(workspace);
41
- // Check actual file (package.json must exist)
42
- const condition = { file: 'package.json' };
43
- expect(evaluator.evaluate(condition)).toBe(true);
44
- });
45
- it('should return false when file does not exist', () => {
46
- const workspace = new Workspace();
47
- const evaluator = new ConditionEvaluator(workspace);
48
- const condition = { file: 'nonexistent-file-12345.txt' };
49
- expect(evaluator.evaluate(condition)).toBe(false);
50
- });
51
- it('should work with all condition', () => {
52
- const workspace = new Workspace();
53
- const evaluator = new ConditionEvaluator(workspace);
54
- const condition = {
55
- all: [{ file: 'package.json' }, { file: 'tsconfig.json' }],
56
- };
57
- expect(evaluator.evaluate(condition)).toBe(true);
58
- });
59
- it('should work with any condition', () => {
60
- const workspace = new Workspace();
61
- const evaluator = new ConditionEvaluator(workspace);
62
- const condition = {
63
- any: [{ file: 'package.json' }, { file: 'nonexistent-file.txt' }],
64
- };
65
- expect(evaluator.evaluate(condition)).toBe(true);
66
- });
67
- });
68
- describe('variable value comparison when clauses', () => {
69
- it('should execute step based on variable value', async () => {
70
- const workflow = {
71
- steps: [
72
- {
73
- choose: {
74
- message: 'Choose?',
75
- options: [{ id: 'option1', label: 'Option 1' }],
76
- as: 'choice',
77
- },
78
- },
79
- {
80
- when: {
81
- var: {
82
- choice: 'option1',
83
- },
84
- },
85
- run: 'echo "Option 1 selected"',
86
- },
87
- ],
88
- };
89
- const choicePrompt = executor.choicePrompt;
90
- choicePrompt.prompt = vi.fn().mockResolvedValue({ id: 'option1', label: 'Option 1' });
91
- await executor.execute(workflow);
92
- const calls = mockRun.mock.calls.map((call) => call[0]);
93
- expect(calls).toContain('echo "Option 1 selected"');
94
- });
95
- it('should skip step when variable value does not match', async () => {
96
- const workflow = {
97
- steps: [
98
- {
99
- choose: {
100
- message: 'Choose?',
101
- options: [{ id: 'option1', label: 'Option 1' }],
102
- as: 'choice',
103
- },
104
- },
105
- {
106
- when: {
107
- var: {
108
- choice: 'option2',
109
- },
110
- },
111
- run: 'echo "This should not run"',
112
- },
113
- ],
114
- };
115
- const choicePrompt = executor.choicePrompt;
116
- choicePrompt.prompt = vi.fn().mockResolvedValue({ id: 'option1', label: 'Option 1' });
117
- await executor.execute(workflow);
118
- const calls = mockRun.mock.calls.map((call) => call[0]);
119
- expect(calls).not.toContain('echo "This should not run"');
120
- });
121
- });
122
- describe('run step without sets/declares', () => {
123
- it('should execute run step without fact setting', async () => {
124
- const workflow = {
125
- steps: [
126
- {
127
- run: 'echo "Step 1"',
128
- },
129
- {
130
- run: 'echo "Step 2"',
131
- },
132
- ],
133
- };
134
- await executor.execute(workflow);
135
- const calls = mockRun.mock.calls.map((call) => call[0]);
136
- expect(calls).toContain('echo "Step 1"');
137
- expect(calls).toContain('echo "Step 2"');
138
- });
139
- it('should stop workflow on step failure', async () => {
140
- let callCount = 0;
141
- mockRun.mockImplementation((_cmd) => {
142
- callCount++;
143
- if (callCount === 1) {
144
- return Promise.resolve(false);
145
- }
146
- return Promise.resolve(true);
147
- });
148
- const workflow = {
149
- steps: [
150
- {
151
- run: 'echo "This will fail"',
152
- },
153
- {
154
- run: 'echo "This should not run"',
155
- },
156
- ],
157
- };
158
- try {
159
- await executor.execute(workflow);
160
- expect(true).toBe(false); // Should not reach here
161
- }
162
- catch (error) {
163
- expect(error).toBeDefined();
164
- }
165
- const calls = mockRun.mock.calls.map((call) => call[0]);
166
- expect(calls).not.toContain('echo "This should not run"');
167
- // Restore to original
168
- mockRun.mockResolvedValue(true);
169
- });
170
- });
171
- });
172
- //# sourceMappingURL=file-condition.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"file-condition.test.js","sourceRoot":"","sources":["../../../src/core/__tests__/file-condition.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=final-verification.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"final-verification.test.d.ts","sourceRoot":"","sources":["../../../src/core/__tests__/final-verification.test.ts"],"names":[],"mappings":""}
@@ -1,56 +0,0 @@
1
- import { readFileSync } from 'fs';
2
- import { describe, it, expect, vi, beforeEach } from 'vitest';
3
- import { parse } from 'yaml';
4
- import { Executor } from '../executor';
5
- // Final verification: Execute actual YAML files and verify all steps execute correctly
6
- describe('FINAL VERIFICATION: Basic YAML Must Work', () => {
7
- let executor;
8
- let executedCommands;
9
- beforeEach(() => {
10
- vi.clearAllMocks();
11
- executor = new Executor();
12
- executedCommands = [];
13
- const taskRunner = executor.taskRunner;
14
- taskRunner.run = vi.fn().mockImplementation((cmd) => {
15
- executedCommands.push(cmd);
16
- return Promise.resolve(true);
17
- });
18
- // Mock TextPrompt (prevent timeout)
19
- const textPrompt = executor.textPrompt;
20
- textPrompt.prompt = vi.fn().mockResolvedValue('1.0.0');
21
- });
22
- it('FINAL TEST: basic.yaml with staging - ALL STEPS MUST EXECUTE', async () => {
23
- const content = readFileSync('examples/yaml-examples/basic.yaml', 'utf-8');
24
- const workflow = parse(content);
25
- const choicePrompt = executor.choicePrompt;
26
- choicePrompt.prompt = vi.fn().mockResolvedValue({ id: 'staging', label: 'Staging' });
27
- await executor.execute(workflow);
28
- // Required verification - all of these must pass
29
- const requiredCommands = ['echo "Building..."', 'echo "Deploying to staging..."'];
30
- requiredCommands.forEach((cmd) => {
31
- expect(executedCommands).toContain(cmd);
32
- });
33
- // Commands that should not be executed
34
- expect(executedCommands).not.toContain('echo "Deploying to production..."');
35
- // Verify workspace state
36
- const workspace = executor.workspace;
37
- expect(workspace.hasChoice('staging')).toBe(true);
38
- expect(workspace.hasChoice('prod')).toBe(false);
39
- console.log('\n✅ FINAL TEST PASSED - All steps executed correctly');
40
- console.log('Executed commands:', executedCommands);
41
- });
42
- it('FINAL TEST: basic.yaml with prod - ALL STEPS MUST EXECUTE', async () => {
43
- const content = readFileSync('examples/yaml-examples/basic.yaml', 'utf-8');
44
- const workflow = parse(content);
45
- const choicePrompt = executor.choicePrompt;
46
- choicePrompt.prompt = vi.fn().mockResolvedValue({ id: 'prod', label: 'Production' });
47
- await executor.execute(workflow);
48
- expect(executedCommands).toContain('echo "Deploying to production..."');
49
- expect(executedCommands).not.toContain('echo "Deploying to staging..."');
50
- const workspace = executor.workspace;
51
- expect(workspace.hasChoice('prod')).toBe(true);
52
- expect(workspace.hasChoice('staging')).toBe(false);
53
- console.log('\n✅ FINAL TEST PASSED - Prod choice works correctly');
54
- });
55
- });
56
- //# sourceMappingURL=final-verification.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"final-verification.test.js","sourceRoot":"","sources":["../../../src/core/__tests__/final-verification.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=parallel-when-condition.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"parallel-when-condition.test.d.ts","sourceRoot":"","sources":["../../../src/core/__tests__/parallel-when-condition.test.ts"],"names":[],"mappings":""}
@@ -1,155 +0,0 @@
1
- import { describe, it, expect, vi, beforeEach } from 'vitest';
2
- import { Executor } from '../executor';
3
- // Mock TaskRunner
4
- const mockRun = vi.fn();
5
- vi.mock('../task-runner', () => ({
6
- TaskRunner: vi.fn().mockImplementation(() => ({
7
- run: mockRun,
8
- runRealtime: mockRun,
9
- displayBufferedOutput: vi.fn(),
10
- })),
11
- }));
12
- describe('Parallel with when condition - Bug Fix Test', () => {
13
- let executor;
14
- let choicePrompt;
15
- beforeEach(() => {
16
- vi.clearAllMocks();
17
- executor = new Executor();
18
- choicePrompt = executor.choicePrompt;
19
- mockRun.mockResolvedValue({ success: true, stdout: '', stderr: '', exitCode: 0 });
20
- });
21
- it('MUST PASS: parallel block with when condition should execute when condition is met', async () => {
22
- const workflow = {
23
- steps: [
24
- {
25
- run: 'echo "Starting Server"',
26
- },
27
- {
28
- choose: {
29
- message: 'Start Server with which environment?',
30
- options: [
31
- { id: 'dev', label: 'Development' },
32
- { id: 'hard-task', label: 'hard-task' },
33
- ],
34
- as: 'mode',
35
- },
36
- },
37
- {
38
- when: {
39
- var: {
40
- mode: 'dev',
41
- },
42
- },
43
- run: 'echo "dev mode"',
44
- },
45
- {
46
- parallel: [
47
- {
48
- when: {
49
- var: {
50
- mode: 'hard-task',
51
- },
52
- },
53
- run: 'echo "hard-task mode"',
54
- timeout: 10,
55
- retry: 2,
56
- },
57
- ],
58
- },
59
- ],
60
- };
61
- // Mock choose to return 'hard-task'
62
- vi.spyOn(choicePrompt, 'prompt').mockResolvedValue({ id: 'hard-task', label: 'hard-task' });
63
- await executor.execute(workflow);
64
- const calls = mockRun.mock.calls.map((call) => call[0]);
65
- // Should execute starting server
66
- expect(calls).toContain('echo "Starting Server"');
67
- // Should NOT execute dev mode (condition not met)
68
- expect(calls).not.toContain('echo "dev mode"');
69
- // SHOULD execute hard-task mode (condition met)
70
- expect(calls).toContain('echo "hard-task mode"');
71
- });
72
- it('MUST PASS: parallel block with when condition should skip when condition is not met', async () => {
73
- const workflow = {
74
- steps: [
75
- {
76
- choose: {
77
- message: 'Start Server with which environment?',
78
- options: [
79
- { id: 'dev', label: 'Development' },
80
- { id: 'hard-task', label: 'hard-task' },
81
- ],
82
- as: 'mode',
83
- },
84
- },
85
- {
86
- parallel: [
87
- {
88
- when: {
89
- var: {
90
- mode: 'hard-task',
91
- },
92
- },
93
- run: 'echo "hard-task mode"',
94
- },
95
- ],
96
- },
97
- ],
98
- };
99
- // Mock choose to return 'dev' (not 'hard-task')
100
- vi.spyOn(choicePrompt, 'prompt').mockResolvedValue({ id: 'dev', label: 'Development' });
101
- await executor.execute(workflow);
102
- const calls = mockRun.mock.calls.map((call) => call[0]);
103
- // Should NOT execute hard-task mode (condition not met)
104
- expect(calls).not.toContain('echo "hard-task mode"');
105
- });
106
- it('MUST PASS: parallel block with multiple when conditions should only execute matching branches', async () => {
107
- const workflow = {
108
- steps: [
109
- {
110
- choose: {
111
- message: 'Select mode',
112
- options: [
113
- { id: 'dev', label: 'dev' },
114
- { id: 'hard-task', label: 'hard-task' },
115
- ],
116
- as: 'mode',
117
- },
118
- },
119
- {
120
- parallel: [
121
- {
122
- when: {
123
- var: {
124
- mode: 'hard-task',
125
- },
126
- },
127
- run: 'echo "hard-task mode"',
128
- timeout: 10,
129
- retry: 2,
130
- },
131
- {
132
- when: {
133
- var: {
134
- mode: 'dev',
135
- },
136
- },
137
- run: 'echo "dev mode"',
138
- timeout: 10,
139
- retry: 2,
140
- },
141
- ],
142
- },
143
- ],
144
- };
145
- // Mock choose to return 'hard-task'
146
- vi.spyOn(choicePrompt, 'prompt').mockResolvedValue({ id: 'hard-task', label: 'hard-task' });
147
- await executor.execute(workflow);
148
- const calls = mockRun.mock.calls.map((call) => call[0]);
149
- // Should execute hard-task mode (condition met)
150
- expect(calls).toContain('echo "hard-task mode"');
151
- // Should NOT execute dev mode (condition not met)
152
- expect(calls).not.toContain('echo "dev mode"');
153
- });
154
- });
155
- //# sourceMappingURL=parallel-when-condition.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"parallel-when-condition.test.js","sourceRoot":"","sources":["../../../src/core/__tests__/parallel-when-condition.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=parser.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"parser.test.d.ts","sourceRoot":"","sources":["../../../src/core/__tests__/parser.test.ts"],"names":[],"mappings":""}