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.
- package/README.ko.md +17 -1
- package/README.md +17 -1
- package/dist/index.cjs +18 -16
- package/dist/index.js +18 -16
- package/dist/task-pipeliner-rs.node +0 -0
- package/package.json +10 -1
- package/dist/cli/index.d.ts +0 -19
- package/dist/cli/index.d.ts.map +0 -1
- package/dist/cli/index.js +0 -305
- package/dist/cli/index.js.map +0 -1
- package/dist/cli/prompts.d.ts +0 -48
- package/dist/cli/prompts.d.ts.map +0 -1
- package/dist/cli/prompts.js +0 -75
- package/dist/cli/prompts.js.map +0 -1
- package/dist/cli/ui.d.ts +0 -39
- package/dist/cli/ui.d.ts.map +0 -1
- package/dist/cli/ui.js +0 -84
- package/dist/cli/ui.js.map +0 -1
- package/dist/core/__tests__/actual-execution.test.d.ts +0 -2
- package/dist/core/__tests__/actual-execution.test.d.ts.map +0 -1
- package/dist/core/__tests__/actual-execution.test.js +0 -147
- package/dist/core/__tests__/actual-execution.test.js.map +0 -1
- package/dist/core/__tests__/base-dir.test.d.ts +0 -2
- package/dist/core/__tests__/base-dir.test.d.ts.map +0 -1
- package/dist/core/__tests__/base-dir.test.js +0 -146
- package/dist/core/__tests__/base-dir.test.js.map +0 -1
- package/dist/core/__tests__/built-code-execution.test.d.ts +0 -2
- package/dist/core/__tests__/built-code-execution.test.d.ts.map +0 -1
- package/dist/core/__tests__/built-code-execution.test.js +0 -48
- package/dist/core/__tests__/built-code-execution.test.js.map +0 -1
- package/dist/core/__tests__/choose-as-var-condition.test.d.ts +0 -2
- package/dist/core/__tests__/choose-as-var-condition.test.d.ts.map +0 -1
- package/dist/core/__tests__/choose-as-var-condition.test.js +0 -308
- package/dist/core/__tests__/choose-as-var-condition.test.js.map +0 -1
- package/dist/core/__tests__/cli-integration.test.d.ts +0 -2
- package/dist/core/__tests__/cli-integration.test.d.ts.map +0 -1
- package/dist/core/__tests__/cli-integration.test.js +0 -83
- package/dist/core/__tests__/cli-integration.test.js.map +0 -1
- package/dist/core/__tests__/comprehensive-basic-yaml.test.d.ts +0 -2
- package/dist/core/__tests__/comprehensive-basic-yaml.test.d.ts.map +0 -1
- package/dist/core/__tests__/comprehensive-basic-yaml.test.js +0 -114
- package/dist/core/__tests__/comprehensive-basic-yaml.test.js.map +0 -1
- package/dist/core/__tests__/condition-evaluator.test.d.ts +0 -2
- package/dist/core/__tests__/condition-evaluator.test.d.ts.map +0 -1
- package/dist/core/__tests__/condition-evaluator.test.js +0 -164
- package/dist/core/__tests__/condition-evaluator.test.js.map +0 -1
- package/dist/core/__tests__/debug-basic-yaml.test.d.ts +0 -2
- package/dist/core/__tests__/debug-basic-yaml.test.d.ts.map +0 -1
- package/dist/core/__tests__/debug-basic-yaml.test.js +0 -126
- package/dist/core/__tests__/debug-basic-yaml.test.js.map +0 -1
- package/dist/core/__tests__/example-files.test.d.ts +0 -2
- package/dist/core/__tests__/example-files.test.d.ts.map +0 -1
- package/dist/core/__tests__/example-files.test.js +0 -199
- package/dist/core/__tests__/example-files.test.js.map +0 -1
- package/dist/core/__tests__/executor-choice-integration.test.d.ts +0 -2
- package/dist/core/__tests__/executor-choice-integration.test.d.ts.map +0 -1
- package/dist/core/__tests__/executor-choice-integration.test.js +0 -169
- package/dist/core/__tests__/executor-choice-integration.test.js.map +0 -1
- package/dist/core/__tests__/executor-choice.test.d.ts +0 -2
- package/dist/core/__tests__/executor-choice.test.d.ts.map +0 -1
- package/dist/core/__tests__/executor-choice.test.js +0 -170
- package/dist/core/__tests__/executor-choice.test.js.map +0 -1
- package/dist/core/__tests__/executor-parallel.test.d.ts +0 -2
- package/dist/core/__tests__/executor-parallel.test.d.ts.map +0 -1
- package/dist/core/__tests__/executor-parallel.test.js +0 -129
- package/dist/core/__tests__/executor-parallel.test.js.map +0 -1
- package/dist/core/__tests__/executor-prompt.test.d.ts +0 -2
- package/dist/core/__tests__/executor-prompt.test.d.ts.map +0 -1
- package/dist/core/__tests__/executor-prompt.test.js +0 -147
- package/dist/core/__tests__/executor-prompt.test.js.map +0 -1
- package/dist/core/__tests__/executor-real-scenario.test.d.ts +0 -2
- package/dist/core/__tests__/executor-real-scenario.test.d.ts.map +0 -1
- package/dist/core/__tests__/executor-real-scenario.test.js +0 -169
- package/dist/core/__tests__/executor-real-scenario.test.js.map +0 -1
- package/dist/core/__tests__/file-condition.test.d.ts +0 -2
- package/dist/core/__tests__/file-condition.test.d.ts.map +0 -1
- package/dist/core/__tests__/file-condition.test.js +0 -172
- package/dist/core/__tests__/file-condition.test.js.map +0 -1
- package/dist/core/__tests__/final-verification.test.d.ts +0 -2
- package/dist/core/__tests__/final-verification.test.d.ts.map +0 -1
- package/dist/core/__tests__/final-verification.test.js +0 -56
- package/dist/core/__tests__/final-verification.test.js.map +0 -1
- package/dist/core/__tests__/parallel-when-condition.test.d.ts +0 -2
- package/dist/core/__tests__/parallel-when-condition.test.d.ts.map +0 -1
- package/dist/core/__tests__/parallel-when-condition.test.js +0 -155
- package/dist/core/__tests__/parallel-when-condition.test.js.map +0 -1
- package/dist/core/__tests__/parser.test.d.ts +0 -2
- package/dist/core/__tests__/parser.test.d.ts.map +0 -1
- package/dist/core/__tests__/parser.test.js +0 -91
- package/dist/core/__tests__/parser.test.js.map +0 -1
- package/dist/core/__tests__/real-inquirer-test.test.d.ts +0 -2
- package/dist/core/__tests__/real-inquirer-test.test.d.ts.map +0 -1
- package/dist/core/__tests__/real-inquirer-test.test.js +0 -20
- package/dist/core/__tests__/real-inquirer-test.test.js.map +0 -1
- package/dist/core/__tests__/reproduce-bug.test.d.ts +0 -2
- package/dist/core/__tests__/reproduce-bug.test.d.ts.map +0 -1
- package/dist/core/__tests__/reproduce-bug.test.js +0 -85
- package/dist/core/__tests__/reproduce-bug.test.js.map +0 -1
- package/dist/core/__tests__/timeout-retry.test.d.ts +0 -2
- package/dist/core/__tests__/timeout-retry.test.d.ts.map +0 -1
- package/dist/core/__tests__/timeout-retry.test.js +0 -184
- package/dist/core/__tests__/timeout-retry.test.js.map +0 -1
- package/dist/core/__tests__/workflow-validation.test.d.ts +0 -2
- package/dist/core/__tests__/workflow-validation.test.d.ts.map +0 -1
- package/dist/core/__tests__/workflow-validation.test.js +0 -116
- package/dist/core/__tests__/workflow-validation.test.js.map +0 -1
- package/dist/core/__tests__/workspace.test.d.ts +0 -2
- package/dist/core/__tests__/workspace.test.d.ts.map +0 -1
- package/dist/core/__tests__/workspace.test.js +0 -29
- package/dist/core/__tests__/workspace.test.js.map +0 -1
- package/dist/core/__tests__/yaml-integration.test.d.ts +0 -2
- package/dist/core/__tests__/yaml-integration.test.d.ts.map +0 -1
- package/dist/core/__tests__/yaml-integration.test.js +0 -114
- package/dist/core/__tests__/yaml-integration.test.js.map +0 -1
- package/dist/core/__tests__/yaml-scenarios.test.d.ts +0 -2
- package/dist/core/__tests__/yaml-scenarios.test.d.ts.map +0 -1
- package/dist/core/__tests__/yaml-scenarios.test.js +0 -197
- package/dist/core/__tests__/yaml-scenarios.test.js.map +0 -1
- package/dist/core/condition-evaluator.d.ts +0 -44
- package/dist/core/condition-evaluator.d.ts.map +0 -1
- package/dist/core/condition-evaluator.js +0 -121
- package/dist/core/condition-evaluator.js.map +0 -1
- package/dist/core/executor.d.ts +0 -172
- package/dist/core/executor.d.ts.map +0 -1
- package/dist/core/executor.js +0 -590
- package/dist/core/executor.js.map +0 -1
- package/dist/core/history.d.ts +0 -51
- package/dist/core/history.d.ts.map +0 -1
- package/dist/core/history.js +0 -57
- package/dist/core/history.js.map +0 -1
- package/dist/core/parser.d.ts +0 -41
- package/dist/core/parser.d.ts.map +0 -1
- package/dist/core/parser.js +0 -206
- package/dist/core/parser.js.map +0 -1
- package/dist/core/recorder.d.ts +0 -48
- package/dist/core/recorder.d.ts.map +0 -1
- package/dist/core/recorder.js +0 -56
- package/dist/core/recorder.js.map +0 -1
- package/dist/core/rust-task-runner.d.ts +0 -14
- package/dist/core/rust-task-runner.d.ts.map +0 -1
- package/dist/core/rust-task-runner.js +0 -34
- package/dist/core/rust-task-runner.js.map +0 -1
- package/dist/core/task-runner.d.ts +0 -63
- package/dist/core/task-runner.d.ts.map +0 -1
- package/dist/core/task-runner.js +0 -259
- package/dist/core/task-runner.js.map +0 -1
- package/dist/core/template.d.ts +0 -11
- package/dist/core/template.d.ts.map +0 -1
- package/dist/core/template.js +0 -36
- package/dist/core/template.js.map +0 -1
- package/dist/core/workflow-schema.d.ts +0 -31
- package/dist/core/workflow-schema.d.ts.map +0 -1
- package/dist/core/workflow-schema.js +0 -127
- package/dist/core/workflow-schema.js.map +0 -1
- package/dist/core/workspace.d.ts +0 -90
- package/dist/core/workspace.d.ts.map +0 -1
- package/dist/core/workspace.js +0 -143
- package/dist/core/workspace.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/types/condition.d.ts +0 -62
- package/dist/types/condition.d.ts.map +0 -1
- package/dist/types/condition.js +0 -6
- package/dist/types/condition.js.map +0 -1
- package/dist/types/workflow.d.ts +0 -90
- package/dist/types/workflow.d.ts.map +0 -1
- package/dist/types/workflow.js +0 -2
- package/dist/types/workflow.js.map +0 -1
|
@@ -1,147 +0,0 @@
|
|
|
1
|
-
import { readFileSync } from 'fs';
|
|
2
|
-
import { describe, it, expect, vi } from 'vitest';
|
|
3
|
-
import { parse } from 'yaml';
|
|
4
|
-
import { ConditionEvaluator } from '../condition-evaluator';
|
|
5
|
-
import { Executor } from '../executor';
|
|
6
|
-
// Simulate actual execution
|
|
7
|
-
describe('ACTUAL EXECUTION SIMULATION - Must Fix', () => {
|
|
8
|
-
it('should execute basic.yaml EXACTLY as real execution', async () => {
|
|
9
|
-
// 1. Load YAML file (same as actual)
|
|
10
|
-
const content = readFileSync('examples/yaml-examples/basic.yaml', 'utf-8');
|
|
11
|
-
const workflow = parse(content);
|
|
12
|
-
// 2. Create Executor
|
|
13
|
-
const executor = new Executor();
|
|
14
|
-
const workspace = executor.workspace;
|
|
15
|
-
const choicePrompt = executor.choicePrompt;
|
|
16
|
-
const taskRunner = executor.taskRunner;
|
|
17
|
-
// 3. Simulate actual execution
|
|
18
|
-
const executedCommands = [];
|
|
19
|
-
const mockRun = vi.fn().mockImplementation((cmd) => {
|
|
20
|
-
executedCommands.push(cmd);
|
|
21
|
-
console.log(`[RUN] ${cmd}`);
|
|
22
|
-
return Promise.resolve(true);
|
|
23
|
-
});
|
|
24
|
-
taskRunner.run = mockRun;
|
|
25
|
-
// 4. Mock choice prompt (like actual inquirer)
|
|
26
|
-
const mockPrompt = vi.fn().mockResolvedValue({ id: 'staging', label: 'Staging' });
|
|
27
|
-
choicePrompt.prompt = mockPrompt;
|
|
28
|
-
// Mock TextPrompt (prevent timeout)
|
|
29
|
-
const textPrompt = executor.textPrompt;
|
|
30
|
-
textPrompt.prompt = vi.fn().mockResolvedValue('1.0.0');
|
|
31
|
-
// 5. CI environment variable
|
|
32
|
-
process.env.CI = 'false';
|
|
33
|
-
try {
|
|
34
|
-
// 6. Execute
|
|
35
|
-
await executor.execute(workflow);
|
|
36
|
-
// 7. Verify
|
|
37
|
-
console.log('\n=== EXECUTION RESULT ===');
|
|
38
|
-
console.log('Executed commands:', executedCommands);
|
|
39
|
-
console.log('Workspace choices:', Array.from(workspace.state.choices.entries()));
|
|
40
|
-
console.log('Workspace facts:', Array.from(workspace.state.facts.entries()));
|
|
41
|
-
// Required verification
|
|
42
|
-
expect(executedCommands).toContain('echo "Deploying to staging..."');
|
|
43
|
-
expect(executedCommands).not.toContain('echo "Deploying to production..."');
|
|
44
|
-
expect(workspace.hasChoice('staging')).toBe(true);
|
|
45
|
-
// Verify each step
|
|
46
|
-
expect(executedCommands[0]).toBe('echo "Building..."');
|
|
47
|
-
expect(executedCommands).toContain('echo "Deploying to staging..."');
|
|
48
|
-
console.log('\n✅ ALL CHECKS PASSED');
|
|
49
|
-
}
|
|
50
|
-
finally {
|
|
51
|
-
delete process.env.CI;
|
|
52
|
-
}
|
|
53
|
-
});
|
|
54
|
-
it('should verify choice is set BEFORE next step evaluation', async () => {
|
|
55
|
-
const workflow = {
|
|
56
|
-
steps: [
|
|
57
|
-
{
|
|
58
|
-
choose: {
|
|
59
|
-
message: 'Choose?',
|
|
60
|
-
options: [{ id: 'staging', label: 'Staging' }],
|
|
61
|
-
},
|
|
62
|
-
},
|
|
63
|
-
{
|
|
64
|
-
choose: {
|
|
65
|
-
message: 'Choose?',
|
|
66
|
-
options: [{ id: 'staging', label: 'Staging' }],
|
|
67
|
-
as: 'env',
|
|
68
|
-
},
|
|
69
|
-
},
|
|
70
|
-
{
|
|
71
|
-
when: {
|
|
72
|
-
var: {
|
|
73
|
-
env: 'staging',
|
|
74
|
-
},
|
|
75
|
-
},
|
|
76
|
-
run: 'echo "After choice"',
|
|
77
|
-
},
|
|
78
|
-
],
|
|
79
|
-
};
|
|
80
|
-
const executor = new Executor();
|
|
81
|
-
const workspace = executor.workspace;
|
|
82
|
-
const choicePrompt = executor.choicePrompt;
|
|
83
|
-
const taskRunner = executor.taskRunner;
|
|
84
|
-
const executedCommands = [];
|
|
85
|
-
taskRunner.run = vi.fn().mockImplementation((cmd) => {
|
|
86
|
-
executedCommands.push(cmd);
|
|
87
|
-
return Promise.resolve(true);
|
|
88
|
-
});
|
|
89
|
-
choicePrompt.prompt = vi
|
|
90
|
-
.fn()
|
|
91
|
-
.mockResolvedValueOnce({ id: 'staging', label: 'Staging' })
|
|
92
|
-
.mockResolvedValueOnce({ id: 'staging', label: 'Staging' });
|
|
93
|
-
await executor.execute(workflow);
|
|
94
|
-
// Check if choice is set
|
|
95
|
-
expect(workspace.hasChoice('staging')).toBe(true);
|
|
96
|
-
expect(executedCommands).toContain('echo "After choice"');
|
|
97
|
-
});
|
|
98
|
-
it('should manually trace step execution', async () => {
|
|
99
|
-
const workflow = {
|
|
100
|
-
steps: [
|
|
101
|
-
{ run: 'step1' },
|
|
102
|
-
{
|
|
103
|
-
choose: {
|
|
104
|
-
message: 'Choose?',
|
|
105
|
-
options: [{ id: 'opt1', label: 'Option 1' }],
|
|
106
|
-
as: 'choice',
|
|
107
|
-
},
|
|
108
|
-
},
|
|
109
|
-
{ when: { var: { choice: 'opt1' } }, run: 'step3' },
|
|
110
|
-
],
|
|
111
|
-
};
|
|
112
|
-
const executor = new Executor();
|
|
113
|
-
const workspace = executor.workspace;
|
|
114
|
-
const choicePrompt = executor.choicePrompt;
|
|
115
|
-
const taskRunner = executor.taskRunner;
|
|
116
|
-
const executedCommands = [];
|
|
117
|
-
taskRunner.run = vi.fn().mockImplementation((cmd) => {
|
|
118
|
-
executedCommands.push(cmd);
|
|
119
|
-
console.log(`Executing: ${cmd}`);
|
|
120
|
-
return Promise.resolve(true);
|
|
121
|
-
});
|
|
122
|
-
choicePrompt.prompt = vi.fn().mockResolvedValue({ id: 'opt1', label: 'Option 1' });
|
|
123
|
-
// Step-by-step trace
|
|
124
|
-
console.log('\n=== STEP BY STEP TRACE ===');
|
|
125
|
-
// Step 0: run
|
|
126
|
-
await executor.executeStep(workflow.steps[0], { workspace, stepIndex: 0 });
|
|
127
|
-
console.log('After step 0:', workspace.hasFact('fact1'));
|
|
128
|
-
// Step 1: choose
|
|
129
|
-
await executor.executeChooseStep(workflow.steps[1], { workspace, stepIndex: 1 });
|
|
130
|
-
console.log('After step 1 (choose):', workspace.hasChoice('opt1'));
|
|
131
|
-
// Step 2: when + run
|
|
132
|
-
const step2 = workflow.steps[2];
|
|
133
|
-
if (step2 && 'when' in step2 && step2.when) {
|
|
134
|
-
const evaluator = new ConditionEvaluator(workspace);
|
|
135
|
-
const conditionResult = evaluator.evaluate(step2.when);
|
|
136
|
-
console.log('Step 2 condition result:', conditionResult);
|
|
137
|
-
if (conditionResult) {
|
|
138
|
-
await executor.executeRunStep(step2, { workspace, stepIndex: 2 });
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
else if (step2) {
|
|
142
|
-
await executor.executeRunStep(step2, { workspace, stepIndex: 2 });
|
|
143
|
-
}
|
|
144
|
-
expect(executedCommands).toContain('step3');
|
|
145
|
-
});
|
|
146
|
-
});
|
|
147
|
-
//# sourceMappingURL=actual-execution.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"actual-execution.test.js","sourceRoot":"","sources":["../../../src/core/__tests__/actual-execution.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"base-dir.test.d.ts","sourceRoot":"","sources":["../../../src/core/__tests__/base-dir.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,146 +0,0 @@
|
|
|
1
|
-
import { readFileSync } from 'fs';
|
|
2
|
-
import { resolve, dirname } from 'path';
|
|
3
|
-
import { describe, it, expect, vi, beforeEach } from 'vitest';
|
|
4
|
-
import { parse } from 'yaml';
|
|
5
|
-
import { Executor } from '../executor';
|
|
6
|
-
// Mock TaskRunner
|
|
7
|
-
const mockRun = vi.fn().mockResolvedValue(true);
|
|
8
|
-
vi.mock('../task-runner.js', () => {
|
|
9
|
-
return {
|
|
10
|
-
TaskRunner: vi.fn().mockImplementation(() => {
|
|
11
|
-
return {
|
|
12
|
-
run: mockRun,
|
|
13
|
-
};
|
|
14
|
-
}),
|
|
15
|
-
};
|
|
16
|
-
});
|
|
17
|
-
// Mock ChoicePrompt, TextPrompt
|
|
18
|
-
const mockChoicePrompt = vi.fn();
|
|
19
|
-
const mockTextPrompt = vi.fn();
|
|
20
|
-
vi.mock('../../cli/prompts.js', () => {
|
|
21
|
-
return {
|
|
22
|
-
ChoicePrompt: vi.fn().mockImplementation(() => {
|
|
23
|
-
return {
|
|
24
|
-
prompt: mockChoicePrompt,
|
|
25
|
-
};
|
|
26
|
-
}),
|
|
27
|
-
TextPrompt: vi.fn().mockImplementation(() => {
|
|
28
|
-
return {
|
|
29
|
-
prompt: mockTextPrompt,
|
|
30
|
-
};
|
|
31
|
-
}),
|
|
32
|
-
};
|
|
33
|
-
});
|
|
34
|
-
describe('Base Directory Tests', () => {
|
|
35
|
-
let executor;
|
|
36
|
-
beforeEach(() => {
|
|
37
|
-
vi.clearAllMocks();
|
|
38
|
-
executor = new Executor();
|
|
39
|
-
});
|
|
40
|
-
it('should resolve relative baseDir against YAML file directory', async () => {
|
|
41
|
-
const yamlContent = `name: Test
|
|
42
|
-
baseDir: ./examples
|
|
43
|
-
steps:
|
|
44
|
-
- run: echo "test"
|
|
45
|
-
`;
|
|
46
|
-
const workflow = parse(yamlContent);
|
|
47
|
-
// Simulate YAML file path
|
|
48
|
-
workflow._filePath = resolve(process.cwd(), 'test-workflow.yaml');
|
|
49
|
-
await executor.execute(workflow);
|
|
50
|
-
// Check that baseDir was resolved correctly
|
|
51
|
-
const expectedBaseDir = resolve(process.cwd(), 'examples');
|
|
52
|
-
const actualBaseDir = executor.baseDir;
|
|
53
|
-
expect(actualBaseDir).toBe(expectedBaseDir);
|
|
54
|
-
// Verify command was called with correct cwd
|
|
55
|
-
expect(mockRun).toHaveBeenCalled();
|
|
56
|
-
const lastCall = mockRun.mock.calls[mockRun.mock.calls.length - 1];
|
|
57
|
-
expect(lastCall[8]).toBe(expectedBaseDir); // cwd is 9th parameter (index 8)
|
|
58
|
-
});
|
|
59
|
-
it('should use absolute baseDir as-is', async () => {
|
|
60
|
-
const absolutePath = resolve(process.cwd(), 'examples');
|
|
61
|
-
const yamlContent = `name: Test
|
|
62
|
-
baseDir: ${absolutePath}
|
|
63
|
-
steps:
|
|
64
|
-
- run: echo "test"
|
|
65
|
-
`;
|
|
66
|
-
const workflow = parse(yamlContent);
|
|
67
|
-
workflow._filePath = resolve(process.cwd(), 'test-workflow.yaml');
|
|
68
|
-
await executor.execute(workflow);
|
|
69
|
-
// Check that absolute baseDir was used as-is
|
|
70
|
-
const actualBaseDir = executor.baseDir;
|
|
71
|
-
expect(actualBaseDir).toBe(absolutePath);
|
|
72
|
-
// Verify command was called with correct cwd
|
|
73
|
-
expect(mockRun).toHaveBeenCalled();
|
|
74
|
-
const lastCall = mockRun.mock.calls[mockRun.mock.calls.length - 1];
|
|
75
|
-
expect(lastCall[8]).toBe(absolutePath);
|
|
76
|
-
});
|
|
77
|
-
it('should fallback to current working directory if _filePath is not set', async () => {
|
|
78
|
-
const yamlContent = `name: Test
|
|
79
|
-
baseDir: ./examples
|
|
80
|
-
steps:
|
|
81
|
-
- run: echo "test"
|
|
82
|
-
`;
|
|
83
|
-
const workflow = parse(yamlContent);
|
|
84
|
-
// Don't set _filePath
|
|
85
|
-
await executor.execute(workflow);
|
|
86
|
-
// Check that baseDir was resolved against cwd
|
|
87
|
-
const expectedBaseDir = resolve(process.cwd(), 'examples');
|
|
88
|
-
const actualBaseDir = executor.baseDir;
|
|
89
|
-
expect(actualBaseDir).toBe(expectedBaseDir);
|
|
90
|
-
});
|
|
91
|
-
it('should execute commands in baseDir when specified', async () => {
|
|
92
|
-
const yamlContent = `name: Test
|
|
93
|
-
baseDir: ./examples
|
|
94
|
-
steps:
|
|
95
|
-
- run: echo "test1"
|
|
96
|
-
- run: echo "test2"
|
|
97
|
-
`;
|
|
98
|
-
const workflow = parse(yamlContent);
|
|
99
|
-
workflow._filePath = resolve(process.cwd(), 'test-workflow.yaml');
|
|
100
|
-
await executor.execute(workflow);
|
|
101
|
-
// All commands should be called with the same baseDir
|
|
102
|
-
expect(mockRun).toHaveBeenCalledTimes(2);
|
|
103
|
-
const expectedBaseDir = resolve(process.cwd(), 'examples');
|
|
104
|
-
mockRun.mock.calls.forEach((call) => {
|
|
105
|
-
expect(call[8]).toBe(expectedBaseDir);
|
|
106
|
-
});
|
|
107
|
-
});
|
|
108
|
-
it('should work without baseDir (use current working directory)', async () => {
|
|
109
|
-
const yamlContent = `name: Test
|
|
110
|
-
steps:
|
|
111
|
-
- run: echo "test"
|
|
112
|
-
`;
|
|
113
|
-
const workflow = parse(yamlContent);
|
|
114
|
-
await executor.execute(workflow);
|
|
115
|
-
// baseDir should be undefined
|
|
116
|
-
const actualBaseDir = executor.baseDir;
|
|
117
|
-
expect(actualBaseDir).toBeUndefined();
|
|
118
|
-
// Command should be called with undefined cwd (defaults to current dir)
|
|
119
|
-
expect(mockRun).toHaveBeenCalled();
|
|
120
|
-
const lastCall = mockRun.mock.calls[mockRun.mock.calls.length - 1];
|
|
121
|
-
expect(lastCall[8]).toBeUndefined();
|
|
122
|
-
});
|
|
123
|
-
it('should execute base-dir-example.yaml correctly', async () => {
|
|
124
|
-
const yamlContent = readFileSync('examples/yaml-examples/base-dir-example.yaml', 'utf-8');
|
|
125
|
-
const workflow = parse(yamlContent);
|
|
126
|
-
workflow._filePath = resolve(process.cwd(), 'examples/yaml-examples/base-dir-example.yaml');
|
|
127
|
-
await executor.execute(workflow);
|
|
128
|
-
// Verify commands were executed
|
|
129
|
-
expect(mockRun).toHaveBeenCalledTimes(2);
|
|
130
|
-
// Verify baseDir was resolved correctly
|
|
131
|
-
// baseDir is relative to YAML file directory, so it should be examples/examples
|
|
132
|
-
// But since YAML file is in examples/, and baseDir is ./examples, it resolves to examples/examples
|
|
133
|
-
// Actually, baseDir: ./examples means "examples directory relative to YAML file location"
|
|
134
|
-
// Since YAML is in examples/, ./examples resolves to examples/examples
|
|
135
|
-
// But the test expects examples/, so let's check what actually happens
|
|
136
|
-
const yamlDir = dirname(workflow._filePath);
|
|
137
|
-
const expectedBaseDir = resolve(yamlDir, 'examples');
|
|
138
|
-
const actualBaseDir = executor.baseDir;
|
|
139
|
-
expect(actualBaseDir).toBe(expectedBaseDir);
|
|
140
|
-
// Verify all commands used the correct cwd
|
|
141
|
-
mockRun.mock.calls.forEach((call) => {
|
|
142
|
-
expect(call[8]).toBe(expectedBaseDir);
|
|
143
|
-
});
|
|
144
|
-
});
|
|
145
|
-
});
|
|
146
|
-
//# sourceMappingURL=base-dir.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"base-dir.test.js","sourceRoot":"","sources":["../../../src/core/__tests__/base-dir.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"built-code-execution.test.d.ts","sourceRoot":"","sources":["../../../src/core/__tests__/built-code-execution.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
import { execSync } from 'child_process';
|
|
2
|
-
import { writeFileSync, unlinkSync } from 'fs';
|
|
3
|
-
import { describe, it, expect } from 'vitest';
|
|
4
|
-
import { parse } from 'yaml';
|
|
5
|
-
// Test that executes actual built code
|
|
6
|
-
describe('BUILT CODE EXECUTION - Real Environment', () => {
|
|
7
|
-
it('should execute basic.yaml using built CLI code', async () => {
|
|
8
|
-
// Check build
|
|
9
|
-
try {
|
|
10
|
-
execSync('pnpm build', { stdio: 'pipe' });
|
|
11
|
-
}
|
|
12
|
-
catch (_e) {
|
|
13
|
-
// May already be built
|
|
14
|
-
}
|
|
15
|
-
// Create test YAML file (automated input)
|
|
16
|
-
const testYaml = `name: Test Workflow
|
|
17
|
-
steps:
|
|
18
|
-
- run: echo "Step 1"
|
|
19
|
-
- choose:
|
|
20
|
-
message: "Choose option"
|
|
21
|
-
options:
|
|
22
|
-
- id: staging
|
|
23
|
-
label: "Staging"
|
|
24
|
-
- id: prod
|
|
25
|
-
label: "Production"
|
|
26
|
-
as: env
|
|
27
|
-
- when:
|
|
28
|
-
var:
|
|
29
|
-
env: staging
|
|
30
|
-
run: echo "Staging selected"
|
|
31
|
-
- when:
|
|
32
|
-
var:
|
|
33
|
-
env: prod
|
|
34
|
-
run: echo "Prod selected"
|
|
35
|
-
`;
|
|
36
|
-
writeFileSync('/tmp/test-workflow.yaml', testYaml);
|
|
37
|
-
// Skip actual execution as it requires inquirer
|
|
38
|
-
// Instead verify code logic
|
|
39
|
-
const workflow = parse(testYaml);
|
|
40
|
-
expect(workflow.steps.length).toBe(4);
|
|
41
|
-
expect(workflow.steps[2]).toHaveProperty('when');
|
|
42
|
-
expect(workflow.steps[2].when).toHaveProperty('var');
|
|
43
|
-
expect(workflow.steps[2].when.var).toHaveProperty('env', 'staging');
|
|
44
|
-
// cleanup
|
|
45
|
-
unlinkSync('/tmp/test-workflow.yaml');
|
|
46
|
-
});
|
|
47
|
-
});
|
|
48
|
-
//# sourceMappingURL=built-code-execution.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"built-code-execution.test.js","sourceRoot":"","sources":["../../../src/core/__tests__/built-code-execution.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,KAAK,EAAE,MAAM,MAAM,CAAC;AAE7B,uCAAuC;AACvC,QAAQ,CAAC,yCAAyC,EAAE,GAAG,EAAE;IACvD,EAAE,CAAC,gDAAgD,EAAE,KAAK,IAAI,EAAE;QAC9D,cAAc;QACd,IAAI,CAAC;YACH,QAAQ,CAAC,YAAY,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QAC5C,CAAC;QAAC,OAAO,EAAE,EAAE,CAAC;YACZ,uBAAuB;QACzB,CAAC;QAED,0CAA0C;QAC1C,MAAM,QAAQ,GAAG;;;;;;;;;;;;;;;;;;;CAmBpB,CAAC;QAEE,aAAa,CAAC,yBAAyB,EAAE,QAAQ,CAAC,CAAC;QAEnD,gDAAgD;QAChD,4BAA4B;QAC5B,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC;QACjC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACtC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QACjD,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QACrD,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QAEpE,UAAU;QACV,UAAU,CAAC,yBAAyB,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"choose-as-var-condition.test.d.ts","sourceRoot":"","sources":["../../../src/core/__tests__/choose-as-var-condition.test.ts"],"names":[],"mappings":""}
|