github.com/ActiveState/cli@v0.0.0-20240508170324-6801f60cd051/pkg/projectfile/yamlfield_test.go (about) 1 package projectfile 2 3 import ( 4 "fmt" 5 "testing" 6 7 "github.com/stretchr/testify/assert" 8 ) 9 10 func Test_yamlField_update(t *testing.T) { 11 type fields struct { 12 field string 13 value interface{} 14 } 15 type args struct { 16 data []byte 17 } 18 tests := []struct { 19 name string 20 fields fields 21 args args 22 want []byte 23 wantErr assert.ErrorAssertionFunc 24 }{ 25 { 26 "Add entry", 27 fields{ 28 "version", 29 1, 30 }, 31 args{ 32 []byte(`foo: bar`), 33 }, 34 []byte(`foo: bar 35 version: 1 36 `), 37 assert.NoError, 38 }, 39 { 40 "Update entry", 41 fields{ 42 "version", 43 2, 44 }, 45 args{ 46 []byte(`foo: bar 47 version: 1`), 48 }, 49 []byte(`foo: bar 50 version: 2`), 51 assert.NoError, 52 }, 53 { 54 "Update Wrapped entry", 55 fields{ 56 "version", 57 2, 58 }, 59 args{ 60 []byte(`key1: val1 61 version: 1 62 key2: val2`), 63 }, 64 []byte(`key1: val1 65 version: 2 66 key2: val2`), 67 assert.NoError, 68 }, 69 } 70 for _, tt := range tests { 71 t.Run(tt.name, func(t *testing.T) { 72 y := &yamlField{ 73 field: tt.fields.field, 74 value: tt.fields.value, 75 } 76 got, err := y.update(tt.args.data) 77 if !tt.wantErr(t, err, fmt.Sprintf("update(%v)", tt.args.data)) { 78 return 79 } 80 assert.Equalf(t, string(tt.want), string(got), "update(%v)", tt.args.data) 81 }) 82 } 83 }