github.com/benchkram/bob@v0.0.0-20240314204020-b7a57f2f9be9/bobrun/run_test.go (about) 1 package bobrun 2 3 import ( 4 "testing" 5 6 "gopkg.in/yaml.v3" 7 8 "github.com/stretchr/testify/assert" 9 ) 10 11 var withLowercase = ` 12 type: binary 13 path: ./build/server 14 dependson: 15 - build 16 - database 17 ` 18 19 var withCamelCase = ` 20 type: binary 21 path: ./build/server 22 dependsOn: 23 - build 24 - database 25 ` 26 27 var withBoth = ` 28 type: binary 29 path: ./build/server 30 dependsOn: 31 - build 32 - database 33 dependson: 34 - build 35 - database 36 ` 37 38 func TestRun_UnmarshalYAMLDependsOn(t *testing.T) { 39 type test struct { 40 input string 41 msg string 42 } 43 44 tests := []test{ 45 {input: withLowercase, msg: "Should equal values from `dependson`"}, 46 {input: withCamelCase, msg: "Should equal values from `dependsOn`"}, 47 } 48 49 for _, tc := range tests { 50 var run Run 51 52 err := yaml.Unmarshal([]byte(tc.input), &run) 53 54 assert.Nil(t, err, "No error should occur on Unmarshal") 55 assert.Equal(t, []string{"build", "database"}, run.DependsOn, tc.msg) 56 } 57 } 58 59 func TestRun_UnmarshalYAMLWithBothDependsOn(t *testing.T) { 60 t.Log("When both values exists for a run should fail with error") 61 62 var run Run 63 err := yaml.Unmarshal([]byte(withBoth), &run) 64 assert.EqualError(t, err, "both `dependson` and `dependsOn` nodes detected near line 2") 65 }