Skip to content
Snippets Groups Projects
Select Git revision
  • 6089ba23903d6679b7ca7ed2878aec94c069df68
  • master default protected
  • refactor/PRXS-3053-Files
  • feature/PRXS-3143-3235-ReferenceOptions
  • feature/PRXS-3421-ImplementNewRefAPI
  • feature/PRXS-3143-LimitReferenceFields
  • feature/PRXS-3234-FeaturePruneIdents
  • feature/3149-LocaleCodeAsID-Feature
  • feature/PRXS-3383-CollectionsRankSortAPI
  • PRXS-3421-RecursiveReferences
  • feature/PRXS-3383-CollectionsSort
  • feature/3109-SerializeFeature
  • release/0.33
  • feature/3109-RecoverySchema
  • feature/3109-feature
  • fix/PRXS-3369-ValidateFields
  • refactor/PRXS-3306-MovePkgGroup1
  • refactor/6-pkg-refactor-expr
  • fix/PRXS-3360-TemplateBuilderPatch
  • feature/3293-MongoV2
  • feature/3272-GoVersionUp
  • v0.33.1
  • v0.32.0
  • v0.31.1
  • v0.31.0
  • v0.30.0
  • v0.29.0
  • v0.28.0
  • v0.27.0-alpha.1+16
  • v0.27.0-alpha.1+15
  • v0.27.0-alpha.1+14
  • v0.27.0-alpha.1+13
  • v0.27.0-alpha.1+12
  • v0.27.0-alpha.1+11
  • v0.27.0-alpha.1+10
  • v0.27.0-alpha.1+9
  • v0.27.0-alpha.1+8
  • v0.27.0-alpha.1+7
  • v0.27.0-alpha.1+6
  • v0.27.0-alpha.1+5
  • v0.27.0-alpha.1+4
41 results

spaces.pb.go

Blame
  • schema_json_test.go 1.55 KiB
    package schema
    
    import (
    	"testing"
    
    	"git.perx.ru/perxis/perxis-go/pkg/schema/field"
    	"github.com/stretchr/testify/assert"
    )
    
    func TestSchema_UnmarshalJSON(t *testing.T) {
    	s := `{
        "ui": {
            "options": {
                "fields": [
                    "text"
                ]
            }
        },
        "type": "object",
        "params": {
            "inline": false,
            "fields": {
                "text": {
                    "title": "text",
                    "ui": {
                        "widget": "StringInput"
                    },
                    "type": "string",
                    "params": {}
                }
            }
        },
        "loaded": false,
        "metadata": null
    }`
    	tests := []struct {
    		name    string
    		b       []byte
    		want    *Schema
    		wantErr bool
    	}{
    		{
    			name:    "No panic with 'null' value in b",
    			b:       []byte("null"),
    			want:    New(),
    			wantErr: false,
    		},
    		{
    			name:    "UnmarshalJSON error #1",
    			b:       []byte(""),
    			want:    New(),
    			wantErr: true,
    		},
    		{
    			name:    "UnmarshalJSON error #2",
    			b:       []byte("abc"),
    			want:    New(),
    			wantErr: true,
    		},
    		{
    			name:    "OK",
    			b:       []byte(s),
    			want:    New("text", field.String().SetTitle("text").WithUI(&field.UI{Widget: "StringInput"})),
    			wantErr: false,
    		},
    	}
    	for _, tt := range tests {
    		t.Run(tt.name, func(t *testing.T) {
    			schema := New()
    			if err := schema.UnmarshalJSON(tt.b); (err != nil) != tt.wantErr {
    				t.Errorf("UnmarshalJSON() error = %v, wantErr %v", err, tt.wantErr)
    			}
    			schema.ClearState()
    			tt.want.ClearState()
    			assert.Equal(t, tt.want, schema)
    		})
    	}
    }