github.com/nektos/act@v0.2.83/pkg/schema/schema_test.go (about) 1 package schema 2 3 import ( 4 "testing" 5 6 "github.com/stretchr/testify/assert" 7 "gopkg.in/yaml.v3" 8 ) 9 10 func TestAdditionalFunctions(t *testing.T) { 11 var node yaml.Node 12 err := yaml.Unmarshal([]byte(` 13 on: push 14 jobs: 15 job-with-condition: 16 runs-on: self-hosted 17 if: success() || success('joba', 'jobb') || failure() || failure('joba', 'jobb') || always() || cancelled() 18 steps: 19 - run: exit 0 20 `), &node) 21 if !assert.NoError(t, err) { 22 return 23 } 24 err = (&Node{ 25 Definition: "workflow-root-strict", 26 Schema: GetWorkflowSchema(), 27 }).UnmarshalYAML(&node) 28 assert.NoError(t, err) 29 } 30 31 func TestAdditionalFunctionsFailure(t *testing.T) { 32 var node yaml.Node 33 err := yaml.Unmarshal([]byte(` 34 on: push 35 jobs: 36 job-with-condition: 37 runs-on: self-hosted 38 if: success() || success('joba', 'jobb') || failure() || failure('joba', 'jobb') || always('error') 39 steps: 40 - run: exit 0 41 `), &node) 42 if !assert.NoError(t, err) { 43 return 44 } 45 err = (&Node{ 46 Definition: "workflow-root-strict", 47 Schema: GetWorkflowSchema(), 48 }).UnmarshalYAML(&node) 49 assert.Error(t, err) 50 } 51 52 func TestAdditionalFunctionsSteps(t *testing.T) { 53 var node yaml.Node 54 err := yaml.Unmarshal([]byte(` 55 on: push 56 jobs: 57 job-with-condition: 58 runs-on: self-hosted 59 steps: 60 - run: exit 0 61 if: success() || failure() || always() 62 `), &node) 63 if !assert.NoError(t, err) { 64 return 65 } 66 err = (&Node{ 67 Definition: "workflow-root-strict", 68 Schema: GetWorkflowSchema(), 69 }).UnmarshalYAML(&node) 70 assert.NoError(t, err) 71 } 72 73 func TestAdditionalFunctionsStepsExprSyntax(t *testing.T) { 74 var node yaml.Node 75 err := yaml.Unmarshal([]byte(` 76 on: push 77 jobs: 78 job-with-condition: 79 runs-on: self-hosted 80 steps: 81 - run: exit 0 82 if: ${{ success() || failure() || always() }} 83 `), &node) 84 if !assert.NoError(t, err) { 85 return 86 } 87 err = (&Node{ 88 Definition: "workflow-root-strict", 89 Schema: GetWorkflowSchema(), 90 }).UnmarshalYAML(&node) 91 assert.NoError(t, err) 92 }