task-pipeliner 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (161) hide show
  1. package/LICENSE +21 -0
  2. package/README.ko.md +1034 -0
  3. package/README.md +1031 -0
  4. package/dist/cli/index.d.ts +19 -0
  5. package/dist/cli/index.d.ts.map +1 -0
  6. package/dist/cli/index.js +147 -0
  7. package/dist/cli/index.js.map +1 -0
  8. package/dist/cli/prompts.d.ts +48 -0
  9. package/dist/cli/prompts.d.ts.map +1 -0
  10. package/dist/cli/prompts.js +75 -0
  11. package/dist/cli/prompts.js.map +1 -0
  12. package/dist/cli/ui.d.ts +39 -0
  13. package/dist/cli/ui.d.ts.map +1 -0
  14. package/dist/cli/ui.js +84 -0
  15. package/dist/cli/ui.js.map +1 -0
  16. package/dist/core/__tests__/actual-execution.test.d.ts +2 -0
  17. package/dist/core/__tests__/actual-execution.test.d.ts.map +1 -0
  18. package/dist/core/__tests__/actual-execution.test.js +140 -0
  19. package/dist/core/__tests__/actual-execution.test.js.map +1 -0
  20. package/dist/core/__tests__/base-dir.test.d.ts +2 -0
  21. package/dist/core/__tests__/base-dir.test.d.ts.map +1 -0
  22. package/dist/core/__tests__/base-dir.test.js +146 -0
  23. package/dist/core/__tests__/base-dir.test.js.map +1 -0
  24. package/dist/core/__tests__/built-code-execution.test.d.ts +2 -0
  25. package/dist/core/__tests__/built-code-execution.test.d.ts.map +1 -0
  26. package/dist/core/__tests__/built-code-execution.test.js +48 -0
  27. package/dist/core/__tests__/built-code-execution.test.js.map +1 -0
  28. package/dist/core/__tests__/choose-as-var-condition.test.d.ts +2 -0
  29. package/dist/core/__tests__/choose-as-var-condition.test.d.ts.map +1 -0
  30. package/dist/core/__tests__/choose-as-var-condition.test.js +308 -0
  31. package/dist/core/__tests__/choose-as-var-condition.test.js.map +1 -0
  32. package/dist/core/__tests__/cli-integration.test.d.ts +2 -0
  33. package/dist/core/__tests__/cli-integration.test.d.ts.map +1 -0
  34. package/dist/core/__tests__/cli-integration.test.js +83 -0
  35. package/dist/core/__tests__/cli-integration.test.js.map +1 -0
  36. package/dist/core/__tests__/comprehensive-basic-yaml.test.d.ts +2 -0
  37. package/dist/core/__tests__/comprehensive-basic-yaml.test.d.ts.map +1 -0
  38. package/dist/core/__tests__/comprehensive-basic-yaml.test.js +111 -0
  39. package/dist/core/__tests__/comprehensive-basic-yaml.test.js.map +1 -0
  40. package/dist/core/__tests__/condition-evaluator.test.d.ts +2 -0
  41. package/dist/core/__tests__/condition-evaluator.test.d.ts.map +1 -0
  42. package/dist/core/__tests__/condition-evaluator.test.js +170 -0
  43. package/dist/core/__tests__/condition-evaluator.test.js.map +1 -0
  44. package/dist/core/__tests__/debug-basic-yaml.test.d.ts +2 -0
  45. package/dist/core/__tests__/debug-basic-yaml.test.d.ts.map +1 -0
  46. package/dist/core/__tests__/debug-basic-yaml.test.js +128 -0
  47. package/dist/core/__tests__/debug-basic-yaml.test.js.map +1 -0
  48. package/dist/core/__tests__/example-files.test.d.ts +2 -0
  49. package/dist/core/__tests__/example-files.test.d.ts.map +1 -0
  50. package/dist/core/__tests__/example-files.test.js +200 -0
  51. package/dist/core/__tests__/example-files.test.js.map +1 -0
  52. package/dist/core/__tests__/executor-choice-integration.test.d.ts +2 -0
  53. package/dist/core/__tests__/executor-choice-integration.test.d.ts.map +1 -0
  54. package/dist/core/__tests__/executor-choice-integration.test.js +171 -0
  55. package/dist/core/__tests__/executor-choice-integration.test.js.map +1 -0
  56. package/dist/core/__tests__/executor-choice.test.d.ts +2 -0
  57. package/dist/core/__tests__/executor-choice.test.d.ts.map +1 -0
  58. package/dist/core/__tests__/executor-choice.test.js +174 -0
  59. package/dist/core/__tests__/executor-choice.test.js.map +1 -0
  60. package/dist/core/__tests__/executor-parallel.test.d.ts +2 -0
  61. package/dist/core/__tests__/executor-parallel.test.d.ts.map +1 -0
  62. package/dist/core/__tests__/executor-parallel.test.js +136 -0
  63. package/dist/core/__tests__/executor-parallel.test.js.map +1 -0
  64. package/dist/core/__tests__/executor-prompt.test.d.ts +2 -0
  65. package/dist/core/__tests__/executor-prompt.test.d.ts.map +1 -0
  66. package/dist/core/__tests__/executor-prompt.test.js +149 -0
  67. package/dist/core/__tests__/executor-prompt.test.js.map +1 -0
  68. package/dist/core/__tests__/executor-real-scenario.test.d.ts +2 -0
  69. package/dist/core/__tests__/executor-real-scenario.test.d.ts.map +1 -0
  70. package/dist/core/__tests__/executor-real-scenario.test.js +169 -0
  71. package/dist/core/__tests__/executor-real-scenario.test.js.map +1 -0
  72. package/dist/core/__tests__/file-condition.test.d.ts +2 -0
  73. package/dist/core/__tests__/file-condition.test.d.ts.map +1 -0
  74. package/dist/core/__tests__/file-condition.test.js +182 -0
  75. package/dist/core/__tests__/file-condition.test.js.map +1 -0
  76. package/dist/core/__tests__/final-verification.test.d.ts +2 -0
  77. package/dist/core/__tests__/final-verification.test.d.ts.map +1 -0
  78. package/dist/core/__tests__/final-verification.test.js +59 -0
  79. package/dist/core/__tests__/final-verification.test.js.map +1 -0
  80. package/dist/core/__tests__/parallel-when-condition.test.d.ts +2 -0
  81. package/dist/core/__tests__/parallel-when-condition.test.d.ts.map +1 -0
  82. package/dist/core/__tests__/parallel-when-condition.test.js +155 -0
  83. package/dist/core/__tests__/parallel-when-condition.test.js.map +1 -0
  84. package/dist/core/__tests__/parser.test.d.ts +2 -0
  85. package/dist/core/__tests__/parser.test.d.ts.map +1 -0
  86. package/dist/core/__tests__/parser.test.js +94 -0
  87. package/dist/core/__tests__/parser.test.js.map +1 -0
  88. package/dist/core/__tests__/real-inquirer-test.test.d.ts +2 -0
  89. package/dist/core/__tests__/real-inquirer-test.test.d.ts.map +1 -0
  90. package/dist/core/__tests__/real-inquirer-test.test.js +20 -0
  91. package/dist/core/__tests__/real-inquirer-test.test.js.map +1 -0
  92. package/dist/core/__tests__/reproduce-bug.test.d.ts +2 -0
  93. package/dist/core/__tests__/reproduce-bug.test.d.ts.map +1 -0
  94. package/dist/core/__tests__/reproduce-bug.test.js +84 -0
  95. package/dist/core/__tests__/reproduce-bug.test.js.map +1 -0
  96. package/dist/core/__tests__/timeout-retry.test.d.ts +2 -0
  97. package/dist/core/__tests__/timeout-retry.test.d.ts.map +1 -0
  98. package/dist/core/__tests__/timeout-retry.test.js +184 -0
  99. package/dist/core/__tests__/timeout-retry.test.js.map +1 -0
  100. package/dist/core/__tests__/workflow-validation.test.d.ts +2 -0
  101. package/dist/core/__tests__/workflow-validation.test.d.ts.map +1 -0
  102. package/dist/core/__tests__/workflow-validation.test.js +120 -0
  103. package/dist/core/__tests__/workflow-validation.test.js.map +1 -0
  104. package/dist/core/__tests__/workspace.test.d.ts +2 -0
  105. package/dist/core/__tests__/workspace.test.d.ts.map +1 -0
  106. package/dist/core/__tests__/workspace.test.js +29 -0
  107. package/dist/core/__tests__/workspace.test.js.map +1 -0
  108. package/dist/core/__tests__/yaml-integration.test.d.ts +2 -0
  109. package/dist/core/__tests__/yaml-integration.test.d.ts.map +1 -0
  110. package/dist/core/__tests__/yaml-integration.test.js +114 -0
  111. package/dist/core/__tests__/yaml-integration.test.js.map +1 -0
  112. package/dist/core/__tests__/yaml-scenarios.test.d.ts +2 -0
  113. package/dist/core/__tests__/yaml-scenarios.test.d.ts.map +1 -0
  114. package/dist/core/__tests__/yaml-scenarios.test.js +199 -0
  115. package/dist/core/__tests__/yaml-scenarios.test.js.map +1 -0
  116. package/dist/core/condition-evaluator.d.ts +44 -0
  117. package/dist/core/condition-evaluator.d.ts.map +1 -0
  118. package/dist/core/condition-evaluator.js +121 -0
  119. package/dist/core/condition-evaluator.js.map +1 -0
  120. package/dist/core/executor.d.ts +172 -0
  121. package/dist/core/executor.d.ts.map +1 -0
  122. package/dist/core/executor.js +579 -0
  123. package/dist/core/executor.js.map +1 -0
  124. package/dist/core/parser.d.ts +41 -0
  125. package/dist/core/parser.d.ts.map +1 -0
  126. package/dist/core/parser.js +202 -0
  127. package/dist/core/parser.js.map +1 -0
  128. package/dist/core/rust-task-runner.d.ts +14 -0
  129. package/dist/core/rust-task-runner.d.ts.map +1 -0
  130. package/dist/core/rust-task-runner.js +34 -0
  131. package/dist/core/rust-task-runner.js.map +1 -0
  132. package/dist/core/task-runner.d.ts +63 -0
  133. package/dist/core/task-runner.d.ts.map +1 -0
  134. package/dist/core/task-runner.js +252 -0
  135. package/dist/core/task-runner.js.map +1 -0
  136. package/dist/core/template.d.ts +11 -0
  137. package/dist/core/template.d.ts.map +1 -0
  138. package/dist/core/template.js +36 -0
  139. package/dist/core/template.js.map +1 -0
  140. package/dist/core/workflow-schema.d.ts +31 -0
  141. package/dist/core/workflow-schema.d.ts.map +1 -0
  142. package/dist/core/workflow-schema.js +125 -0
  143. package/dist/core/workflow-schema.js.map +1 -0
  144. package/dist/core/workspace.d.ts +90 -0
  145. package/dist/core/workspace.d.ts.map +1 -0
  146. package/dist/core/workspace.js +143 -0
  147. package/dist/core/workspace.js.map +1 -0
  148. package/dist/index.d.ts +10 -0
  149. package/dist/index.d.ts.map +1 -0
  150. package/dist/index.js +10 -0
  151. package/dist/index.js.map +1 -0
  152. package/dist/task-pipeliner-rs.node +0 -0
  153. package/dist/types/condition.d.ts +62 -0
  154. package/dist/types/condition.d.ts.map +1 -0
  155. package/dist/types/condition.js +6 -0
  156. package/dist/types/condition.js.map +1 -0
  157. package/dist/types/workflow.d.ts +69 -0
  158. package/dist/types/workflow.d.ts.map +1 -0
  159. package/dist/types/workflow.js +2 -0
  160. package/dist/types/workflow.js.map +1 -0
  161. package/package.json +67 -0
@@ -0,0 +1,136 @@
1
+ import { describe, it, expect, vi, beforeEach } from 'vitest';
2
+ import { Executor } from '../executor.js';
3
+ // Mock ChoicePrompt, TextPrompt
4
+ vi.mock('../../cli/prompts.js', () => {
5
+ return {
6
+ ChoicePrompt: vi.fn().mockImplementation(() => {
7
+ return {
8
+ prompt: vi.fn(),
9
+ };
10
+ }),
11
+ TextPrompt: vi.fn().mockImplementation(() => {
12
+ return {
13
+ prompt: vi.fn(),
14
+ };
15
+ }),
16
+ };
17
+ });
18
+ // Mock TaskRunner
19
+ const mockRun = vi.fn().mockResolvedValue(true);
20
+ vi.mock('../task-runner.js', () => {
21
+ return {
22
+ TaskRunner: vi.fn().mockImplementation(() => {
23
+ return {
24
+ run: mockRun,
25
+ };
26
+ }),
27
+ };
28
+ });
29
+ describe('Executor - Parallel Step', () => {
30
+ let executor;
31
+ beforeEach(() => {
32
+ vi.clearAllMocks();
33
+ executor = new Executor();
34
+ });
35
+ it('should wait for all parallel steps to complete before next step', async () => {
36
+ const workflow = {
37
+ steps: [
38
+ {
39
+ parallel: [
40
+ { run: 'echo "Step 1"' },
41
+ { run: 'echo "Step 2"' },
42
+ { run: 'echo "Step 3"' },
43
+ ],
44
+ },
45
+ {
46
+ run: 'echo "After parallel"',
47
+ },
48
+ ],
49
+ };
50
+ await executor.execute(workflow);
51
+ // All parallel steps should execute
52
+ const calls = mockRun.mock.calls.map(call => call[0]);
53
+ expect(calls).toContain('echo "Step 1"');
54
+ expect(calls).toContain('echo "Step 2"');
55
+ expect(calls).toContain('echo "Step 3"');
56
+ // Execute next step after all parallel steps complete
57
+ expect(calls).toContain('echo "After parallel"');
58
+ });
59
+ it('should check files after parallel execution', async () => {
60
+ const workflow = {
61
+ steps: [
62
+ {
63
+ parallel: [
64
+ {
65
+ run: 'echo "Web tests"',
66
+ },
67
+ {
68
+ run: 'echo "API tests"',
69
+ },
70
+ ],
71
+ },
72
+ {
73
+ when: {
74
+ file: 'package.json',
75
+ },
76
+ run: 'echo "Package.json exists"',
77
+ },
78
+ ],
79
+ };
80
+ await executor.execute(workflow);
81
+ // Check condition by file existence
82
+ const calls = mockRun.mock.calls.map(call => call[0]);
83
+ expect(calls).toContain('echo "Package.json exists"');
84
+ });
85
+ it('should handle parallel steps with file conditions', async () => {
86
+ const workflow = {
87
+ steps: [
88
+ {
89
+ parallel: [
90
+ {
91
+ when: { file: 'package.json' },
92
+ run: 'echo "Branch 1"',
93
+ },
94
+ {
95
+ when: { file: 'tsconfig.json' },
96
+ run: 'echo "Branch 2"',
97
+ },
98
+ ],
99
+ },
100
+ {
101
+ run: 'echo "After parallel"',
102
+ },
103
+ ],
104
+ };
105
+ await executor.execute(workflow);
106
+ // Execute only parallel steps with satisfied conditions
107
+ const calls = mockRun.mock.calls.map(call => call[0]);
108
+ expect(calls).toContain('echo "Branch 1"');
109
+ expect(calls).toContain('echo "Branch 2"');
110
+ expect(calls).toContain('echo "After parallel"');
111
+ });
112
+ it('should execute all parallel steps regardless of individual results', async () => {
113
+ const workflow = {
114
+ steps: [
115
+ {
116
+ parallel: [
117
+ { run: 'echo "Step 1"' },
118
+ { run: 'echo "Step 2"' },
119
+ ],
120
+ },
121
+ {
122
+ run: 'echo "After parallel"',
123
+ },
124
+ ],
125
+ };
126
+ // All steps succeed
127
+ mockRun.mockResolvedValue(true);
128
+ await executor.execute(workflow);
129
+ // Both steps should execute
130
+ const calls = mockRun.mock.calls.map(call => call[0]);
131
+ expect(calls).toContain('echo "Step 1"');
132
+ expect(calls).toContain('echo "Step 2"');
133
+ expect(calls).toContain('echo "After parallel"');
134
+ });
135
+ });
136
+ //# sourceMappingURL=executor-parallel.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"executor-parallel.test.js","sourceRoot":"","sources":["../../../src/core/__tests__/executor-parallel.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=executor-prompt.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"executor-prompt.test.d.ts","sourceRoot":"","sources":["../../../src/core/__tests__/executor-prompt.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,149 @@
1
+ import { describe, it, expect, vi, beforeEach } from 'vitest';
2
+ import { Executor } from '../executor.js';
3
+ // Mock TextPrompt
4
+ const mockTextPrompt = vi.fn();
5
+ vi.mock('../../cli/prompts.js', () => {
6
+ return {
7
+ ChoicePrompt: vi.fn().mockImplementation(() => {
8
+ return {
9
+ prompt: vi.fn(),
10
+ };
11
+ }),
12
+ TextPrompt: vi.fn().mockImplementation(() => {
13
+ return {
14
+ prompt: mockTextPrompt,
15
+ };
16
+ }),
17
+ };
18
+ });
19
+ // Mock TaskRunner
20
+ const mockRun = vi.fn().mockResolvedValue(true);
21
+ vi.mock('../task-runner.js', () => {
22
+ return {
23
+ TaskRunner: vi.fn().mockImplementation(() => {
24
+ return {
25
+ run: mockRun,
26
+ };
27
+ }),
28
+ };
29
+ });
30
+ describe('Executor - Prompt Step', () => {
31
+ let executor;
32
+ beforeEach(() => {
33
+ vi.clearAllMocks();
34
+ executor = new Executor();
35
+ });
36
+ it('should execute prompt step and save as fact', async () => {
37
+ const workflow = {
38
+ steps: [
39
+ {
40
+ prompt: {
41
+ message: 'What is your name?',
42
+ as: 'user_name',
43
+ },
44
+ },
45
+ {
46
+ when: { file: 'package.json' },
47
+ run: 'echo "Hello"',
48
+ },
49
+ ],
50
+ };
51
+ mockTextPrompt.mockResolvedValueOnce('John');
52
+ await executor.execute(workflow);
53
+ // Prompt should be called
54
+ expect(mockTextPrompt).toHaveBeenCalledWith('What is your name?', undefined);
55
+ // step should execute after fact is set
56
+ const calls = mockRun.mock.calls.map(call => call[0]);
57
+ expect(calls).toContain('echo "Hello"');
58
+ });
59
+ it('should use default value in prompt', async () => {
60
+ const workflow = {
61
+ steps: [
62
+ {
63
+ prompt: {
64
+ message: 'Enter version:',
65
+ as: 'version',
66
+ default: '1.0.0',
67
+ },
68
+ },
69
+ ],
70
+ };
71
+ mockTextPrompt.mockResolvedValueOnce('1.0.0');
72
+ await executor.execute(workflow);
73
+ // Prompt should be called with default value
74
+ expect(mockTextPrompt).toHaveBeenCalledWith('Enter version:', '1.0.0');
75
+ });
76
+ it('should save prompt value as fact and use in condition', async () => {
77
+ const workflow = {
78
+ steps: [
79
+ {
80
+ prompt: {
81
+ message: 'Enter environment:',
82
+ as: 'env',
83
+ },
84
+ },
85
+ {
86
+ when: { file: 'package.json' },
87
+ run: 'echo "Deploying to {{env}}"',
88
+ },
89
+ ],
90
+ };
91
+ mockTextPrompt.mockResolvedValueOnce('production');
92
+ await executor.execute(workflow);
93
+ // step should execute when condition is satisfied after prompt
94
+ expect(mockRun.mock.calls.length).toBeGreaterThan(0);
95
+ });
96
+ it('should combine prompt and choose', async () => {
97
+ const workflow = {
98
+ steps: [
99
+ {
100
+ prompt: {
101
+ message: 'Enter project name:',
102
+ as: 'project_name',
103
+ },
104
+ },
105
+ {
106
+ choose: {
107
+ message: 'Select environment:',
108
+ options: [
109
+ { id: 'staging', label: 'Staging' },
110
+ { id: 'prod', label: 'Production' },
111
+ ],
112
+ },
113
+ },
114
+ {
115
+ choose: {
116
+ message: 'Select environment:',
117
+ options: [
118
+ { id: 'prod', label: 'Production' },
119
+ ],
120
+ as: 'env',
121
+ },
122
+ },
123
+ {
124
+ when: {
125
+ all: [
126
+ { file: 'package.json' },
127
+ {
128
+ var: {
129
+ env: 'prod'
130
+ }
131
+ },
132
+ ],
133
+ },
134
+ run: 'echo "Deploying {{project_name}} to production"',
135
+ },
136
+ ],
137
+ };
138
+ mockTextPrompt.mockResolvedValueOnce('my-app');
139
+ const mockChoicePrompt = executor.choicePrompt;
140
+ // Mock both choose steps
141
+ mockChoicePrompt.prompt
142
+ .mockResolvedValueOnce({ id: 'prod', label: 'Production' })
143
+ .mockResolvedValueOnce({ id: 'prod', label: 'Production' });
144
+ await executor.execute(workflow);
145
+ // Both prompt and choose should execute, and step should execute when condition is satisfied
146
+ expect(mockRun.mock.calls.length).toBeGreaterThan(0);
147
+ });
148
+ });
149
+ //# sourceMappingURL=executor-prompt.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"executor-prompt.test.js","sourceRoot":"","sources":["../../../src/core/__tests__/executor-prompt.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=executor-real-scenario.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"executor-real-scenario.test.d.ts","sourceRoot":"","sources":["../../../src/core/__tests__/executor-real-scenario.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,169 @@
1
+ import { describe, it, expect, vi, beforeEach } from 'vitest';
2
+ import { Executor } from '../executor.js';
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
@@ -0,0 +1 @@
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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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=file-condition.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-condition.test.d.ts","sourceRoot":"","sources":["../../../src/core/__tests__/file-condition.test.ts"],"names":[],"mappings":""}