...
1 package integration_test
2
3 import (
4 "github.com/udacity/graphb"
5
6 "edge-infra.dev/pkg/edge/api/graph/model"
7 "edge-infra.dev/test/framework/integration"
8 )
9
10 func (s *Suite) TestZones() {
11 integration.SkipIf(s.Framework)
12 var resp struct{ Zones []string }
13 ResolverClient.MustPost(`{zones}`, &resp)
14 s.True(len(resp.Zones) > 0)
15 }
16
17 func (s *Suite) TestGKEZonesValid() {
18 integration.SkipIf(s.Framework)
19 var gkeVersionsResponse struct{ GKEVersions []string }
20 getGKEVersionsQuery := gkeVersionsQuery(testClusterZone)
21 ResolverClient.MustPost(getGKEVersionsQuery, &gkeVersionsResponse)
22 s.True(len(gkeVersionsResponse.GKEVersions) > 0)
23 }
24
25 func (s *Suite) TestGKEZonesFail() {
26 integration.SkipIf(s.Framework)
27 var gkeVersionsResponse struct{ GKEVersions []string }
28 getGKEVersionsQuery := gkeVersionsQuery("bad-zone")
29 err := ResolverClient.Post(getGKEVersionsQuery, &gkeVersionsResponse)
30 s.Error(err)
31 }
32
33 func (s *Suite) TestMachineTypesValid() {
34 integration.SkipIf(s.Framework)
35 var machineTypesQueryResponse struct{ MachineTypes []*model.MachineTypeInfo }
36 getMachineTypesQuery := machineTypesQuery(testClusterZone)
37 ResolverClient.MustPost(getMachineTypesQuery, &machineTypesQueryResponse)
38 s.True(len(machineTypesQueryResponse.MachineTypes) > 0)
39 }
40
41 func (s *Suite) TestMachineTypesFail() {
42 integration.SkipIf(s.Framework)
43 var machineTypesQueryResponse struct{ MachineTypes []*model.MachineTypeInfo }
44 getMachineTypesQuery := machineTypesQuery("bad-zone")
45 err := ResolverClient.Post(getMachineTypesQuery, &machineTypesQueryResponse)
46 s.Error(err)
47 }
48
49 func (s *Suite) TestMachineTypeValid() {
50 integration.SkipIf(s.Framework)
51 var machineTypeQueryResponse struct{ MachineType *model.MachineTypeInfo }
52 machineTypeQuery := machineTypeQuery(testClusterZone, testClusterMachineType)
53 ResolverClient.MustPost(machineTypeQuery, &machineTypeQueryResponse)
54 s.NotNil(machineTypeQueryResponse.MachineType)
55 s.NotNil(machineTypeQueryResponse.MachineType.Name)
56 s.True(machineTypeQueryResponse.MachineType.GuestCPUs > 0)
57 s.True(machineTypeQueryResponse.MachineType.MemoryGb > 0)
58 }
59
60 func (s *Suite) TestMachineTypeFail() {
61 integration.SkipIf(s.Framework)
62 var machineTypeQueryResponse struct{ MachineType *model.MachineTypeInfo }
63 machineTypeQuery := machineTypeQuery(testClusterZone, "bad-machine-type")
64 err := ResolverClient.Post(machineTypeQuery, &machineTypeQueryResponse)
65 s.Error(err)
66 }
67
68 func gkeVersionsQuery(zone string) string {
69 return MustParse(graphb.Query{
70 Type: graphb.TypeQuery,
71 Fields: []*graphb.Field{
72 {
73 Name: "gkeVersions",
74 Arguments: []graphb.Argument{graphb.ArgumentString("zone", zone)},
75 },
76 },
77 })
78 }
79
80 func machineTypesQuery(zone string) string {
81 return MustParse(graphb.Query{
82 Type: graphb.TypeQuery,
83 Fields: []*graphb.Field{
84 {
85 Name: "machineTypes",
86 Arguments: []graphb.Argument{graphb.ArgumentString("zone", zone)},
87 Fields: graphb.Fields("name", "guestCPUs", "memoryGB"),
88 },
89 },
90 })
91 }
92
93 func machineTypeQuery(zone, machineType string) string {
94 return MustParse(graphb.Query{
95 Type: graphb.TypeQuery,
96 Fields: []*graphb.Field{
97 {
98 Name: "machineType",
99 Arguments: []graphb.Argument{
100 graphb.ArgumentString("zone", zone),
101 graphb.ArgumentString("machineType", machineType),
102 },
103 Fields: graphb.Fields("name", "guestCPUs", "memoryGB"),
104 },
105 },
106 })
107 }
108
View as plain text