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  }