github.com/kyma-incubator/compass/components/director@v0.0.0-20230623144113-d764f56ff805/hack/plugins/formatter_order_test.go (about) 1 package plugins_test 2 3 import ( 4 "sort" 5 "testing" 6 7 "github.com/kyma-incubator/compass/components/director/hack/plugins" 8 9 "github.com/stretchr/testify/assert" 10 "github.com/stretchr/testify/require" 11 "github.com/vektah/gqlparser/v2/ast" 12 ) 13 14 func TestOrderedDefinitionList(t *testing.T) { 15 // GIVEN 16 definitions := plugins.OrderedDefinitionList{defMutation(), defQuery(), defObjectZ(), defObjectA(), defScalarB(), defScalarA(), defEnumB(), defEnumA()} 17 // WHEN 18 sort.Sort(definitions) 19 // THEN 20 require.Len(t, definitions, 8) 21 assert.Equal(t, definitions[0], defScalarA()) 22 assert.Equal(t, definitions[1], defScalarB()) 23 assert.Equal(t, definitions[2], defEnumA()) 24 assert.Equal(t, definitions[3], defEnumB()) 25 assert.Equal(t, definitions[4], defObjectA()) 26 assert.Equal(t, definitions[5], defObjectZ()) 27 assert.Equal(t, definitions[6], defQuery()) 28 assert.Equal(t, definitions[7], defMutation()) 29 } 30 31 func defScalarA() ast.Definition { 32 return ast.Definition{ 33 Kind: ast.Scalar, 34 Name: "A-scalar", 35 } 36 } 37 38 func defScalarB() ast.Definition { 39 return ast.Definition{ 40 Kind: ast.Scalar, 41 Name: "B-scalar", 42 } 43 } 44 45 func defEnumA() ast.Definition { 46 return ast.Definition{ 47 Kind: ast.Enum, 48 Name: "A-enum", 49 } 50 } 51 52 func defEnumB() ast.Definition { 53 return ast.Definition{ 54 Kind: ast.Enum, 55 Name: "B-enum", 56 } 57 } 58 59 func defObjectA() ast.Definition { 60 return ast.Definition{ 61 Kind: ast.Object, 62 Name: "A-object", 63 } 64 } 65 66 func defMutation() ast.Definition { 67 return ast.Definition{ 68 Kind: ast.Object, 69 Name: "Mutation", 70 } 71 } 72 73 func defQuery() ast.Definition { 74 return ast.Definition{ 75 Kind: ast.Object, 76 Name: "Query", 77 } 78 } 79 80 func defObjectZ() ast.Definition { 81 return ast.Definition{ 82 Kind: ast.Object, 83 Name: "Z-object", 84 } 85 }