1package workflow
2
3import (
4 "testing"
5
6 "github.com/stretchr/testify/assert"
7)
8
9func TestUnmarshalWorkflow(t *testing.T) {
10 yamlData := `
11when:
12 - event: ["push", "pull_request"]
13 branch: ["main", "develop"]`
14
15 wf, err := FromFile("test.yml", []byte(yamlData))
16 assert.NoError(t, err, "YAML should unmarshal without error")
17
18 assert.Len(t, wf.When, 1, "Should have one constraint")
19 assert.ElementsMatch(t, []string{"main", "develop"}, wf.When[0].Branch)
20 assert.ElementsMatch(t, []string{"push", "pull_request"}, wf.When[0].Event)
21
22 assert.False(t, wf.CloneOpts.Skip, "Skip should default to false")
23}
24
25func TestUnmarshalCloneFalse(t *testing.T) {
26 yamlData := `
27when:
28 - event: pull_request_close
29
30clone:
31 skip: true
32`
33
34 wf, err := FromFile("test.yml", []byte(yamlData))
35 assert.NoError(t, err)
36
37 assert.ElementsMatch(t, []string{"pull_request_close"}, wf.When[0].Event)
38
39 assert.True(t, wf.CloneOpts.Skip, "Skip should be false")
40}