...

Source file src/edge-infra.dev/pkg/edge/api/graph/integration/gcp_service_test.go

Documentation: edge-infra.dev/pkg/edge/api/graph/integration

     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