Skip to content

Commit 8d699e5

Browse files
intel352claude
andcommitted
test: add guard-passes cases for skip_if/if step tracking (#362)
Add two tests covering the "guard passes → step runs" path: - skip_if=false → step executes and output is recorded - if=true → step executes and output is recorded Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent c474304 commit 8d699e5

1 file changed

Lines changed: 60 additions & 0 deletions

File tree

wftest/harness_test.go

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -278,3 +278,63 @@ pipelines:
278278
t.Error("final should have been executed")
279279
}
280280
}
281+
282+
func TestSkipIf_StepTrackedWhenConditionFalse(t *testing.T) {
283+
h := wftest.New(t, wftest.WithYAML(`
284+
pipelines:
285+
test:
286+
steps:
287+
- name: set_flag
288+
type: step.set
289+
config:
290+
values:
291+
flag: "false"
292+
- name: guarded_step
293+
type: step.set
294+
skip_if: '{{ eq .flag "true" }}'
295+
config:
296+
values:
297+
ran: "yes"
298+
`))
299+
result := h.ExecutePipeline("test", nil)
300+
if result.Error != nil {
301+
t.Fatal(result.Error)
302+
}
303+
if !result.StepExecuted("guarded_step") {
304+
t.Error("guarded_step should have been executed (skip_if was false)")
305+
}
306+
out := result.StepOutput("guarded_step")
307+
if out["ran"] != "yes" {
308+
t.Errorf("expected guarded_step output ran=yes, got %v", out["ran"])
309+
}
310+
}
311+
312+
func TestIf_StepTrackedWhenConditionTrue(t *testing.T) {
313+
h := wftest.New(t, wftest.WithYAML(`
314+
pipelines:
315+
test:
316+
steps:
317+
- name: set_flag
318+
type: step.set
319+
config:
320+
values:
321+
flag: "true"
322+
- name: guarded_step
323+
type: step.set
324+
if: '{{ eq .flag "true" }}'
325+
config:
326+
values:
327+
ran: "yes"
328+
`))
329+
result := h.ExecutePipeline("test", nil)
330+
if result.Error != nil {
331+
t.Fatal(result.Error)
332+
}
333+
if !result.StepExecuted("guarded_step") {
334+
t.Error("guarded_step should have been executed (if condition was true)")
335+
}
336+
out := result.StepOutput("guarded_step")
337+
if out["ran"] != "yes" {
338+
t.Errorf("expected guarded_step output ran=yes, got %v", out["ran"])
339+
}
340+
}

0 commit comments

Comments
 (0)