diff --git a/pkg/schema/field/array_test.go b/pkg/schema/field/array_test.go index fcf73b1ff7c8664200ef91bc56669a157ff419a6..5e08a35e7a365ff6e3e3c6987f73ddc6a6ccbce4 100644 --- a/pkg/schema/field/array_test.go +++ b/pkg/schema/field/array_test.go @@ -73,74 +73,67 @@ func TestArrayField_DecodeNonStrict(t *testing.T) { field *Field data interface{} want interface{} - wantErr bool + wantErr string }{ { - "Nil data", - Array(Number(NumberFormatFloat)), - nil, - nil, - false, + name: "Nil data", + field: Array(Number(NumberFormatFloat)), + data: nil, + want: nil, }, { - "Correct data", - Array(Number(NumberFormatFloat)), - []interface{}{1.0, 2.0}, - []interface{}{1.0, 2.0}, - false, + name: "Correct data", + field: Array(Number(NumberFormatFloat)), + data: []interface{}{1.0, 2.0}, + want: []interface{}{1.0, 2.0}, }, { - "String as float", - Array(Number(NumberFormatFloat)), - []interface{}{"1.0", "2.0"}, - []interface{}{1.0, 2.0}, - false, + name: "String as float", + field: Array(Number(NumberFormatFloat)), + data: []interface{}{"1.0", "2.0"}, + want: []interface{}{1.0, 2.0}, }, { - "String as int", - Array(Number("int")), - []interface{}{"1", "2"}, - []interface{}{int64(1), int64(2)}, - false, + name: "String as int", + field: Array(Number("int")), + data: []interface{}{"1", "2"}, + want: []interface{}{int64(1), int64(2)}, }, { - "String as array", - Array(String()), - "string", - []interface{}{"string"}, - false, + name: "String as array", + field: Array(String()), + data: "string", + want: []interface{}{"string"}, }, { - "Single string number", - Array(Number("int")), - "2", - []interface{}{int64(2)}, - false, + name: "Single string number", + field: Array(Number("int")), + data: "2", + want: []interface{}{int64(2)}, }, { - "String array", - Array(Number(NumberFormatFloat)), - "1 2 3.5", - []interface{}{1.0, 2.0, 3.5}, - false, + name: "String array", + field: Array(Number(NumberFormatFloat)), + data: "1 2 3.5", + want: []interface{}{1.0, 2.0, 3.5}, }, { - "Incoorect type", - Array(Bool()), - "1 2 3", - nil, - true, + name: "Incoorect type", + field: Array(Bool()), + data: "1 2 3", + wantErr: "decode error: 3 error(s)", }, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { got, err := Decode(context.Background(), tt.field, tt.data, NonStrictMode()) - if tt.wantErr { + if tt.wantErr != "" { require.Error(t, err) + assert.ErrorContains(t, err, tt.wantErr) return } require.NoError(t, err) - assert.ElementsMatch(t, got, tt.want, "Decode() got = %v, want %v", got, tt.want) + assert.Equal(t, tt.want, got) }) } }