Select Git revision
assets_test.go
field_test.go 7.87 KiB
package references
import (
"context"
"encoding/json"
"fmt"
"testing"
"git.perx.ru/perxis/perxis-go/pkg/items"
"git.perx.ru/perxis/perxis-go/pkg/items/mocks"
"git.perx.ru/perxis/perxis-go/pkg/schema"
"git.perx.ru/perxis/perxis-go/pkg/schema/field"
"git.perx.ru/perxis/perxis-go/pkg/schema/validate"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)
func TestReferenceField_Decode(t *testing.T) {
tests := []struct {
name string
field *field.Field
data interface{}
want interface{}
wantErr bool
}{
{
"Correct",
Field(nil),
map[string]interface{}{"collection_id": "media", "id": "11111111"},
&Reference{ID: "11111111", CollectionID: "media"},
false,
},
{
"Invalid CollectionID",
Field(nil),
map[string]interface{}{"collection_id": "media", "id": 11111111},
"decode error: ReferenceField decode error: field \"id\" required",
true,
},
{
"Extra Field",
Field(nil),
map[string]interface{}{"collection_id": "media", "id": "11111111", "extra": true},
&Reference{ID: "11111111", CollectionID: "media"},
false,
},
{
"Enabled",
Field(nil),
map[string]interface{}{"collection_id": "media", "id": "11111111", "disabled": true},
&Reference{ID: "11111111", CollectionID: "media", Disabled: true},
false,
},
{
"Disabled",
Field(nil),
map[string]interface{}{"collection_id": "media", "id": "11111111", "disabled": false},
&Reference{ID: "11111111", CollectionID: "media", Disabled: false},
false,
},
{
"Disabled wrong type",
Field(nil),
map[string]interface{}{"collection_id": "media", "id": "11111111", "disabled": 3},
&Reference{ID: "11111111", CollectionID: "media", Disabled: false},
false,
},
{
"Missing Field",