package world import "testing" func TestValueTypeSpecValidatesTypedRecursiveShape(t *testing.T) { spec := ValueTypeSpec{Kind: ValueStruct, Fields: []ValueField{{Name: "name", Type: ValueTypeSpec{Kind: ValueString}}, {Name: "refs", Type: ValueTypeSpec{Kind: ValueList, Element: &ValueTypeSpec{Kind: ValueReference, ReferenceKind: "world.object"}}}}} if err := spec.Validate(); err != nil { t.Fatalf("ValueTypeSpec.Validate() = %v", err) } } func TestValueTypeSpecRejectsDuplicateFields(t *testing.T) { spec := ValueTypeSpec{Kind: ValueStruct, Fields: []ValueField{{Name: "same", Type: ValueTypeSpec{Kind: ValueString}}, {Name: "same", Type: ValueTypeSpec{Kind: ValueString}}}} if err := spec.Validate(); err == nil { t.Fatal("duplicate fields were accepted") } }