...

Source file src/edge-infra.dev/pkg/lib/gcp/metricsscopes/integration/integration_test.go

Documentation: edge-infra.dev/pkg/lib/gcp/metricsscopes/integration

     1  package integration
     2  
     3  import (
     4  	"context"
     5  	"os"
     6  	"testing"
     7  
     8  	"github.com/stretchr/testify/require"
     9  	ctrl "sigs.k8s.io/controller-runtime"
    10  
    11  	"edge-infra.dev/pkg/lib/fog"
    12  	metricScopes "edge-infra.dev/pkg/lib/gcp/metricsscopes"
    13  	"edge-infra.dev/test/f2"
    14  	"edge-infra.dev/test/f2/integration"
    15  )
    16  
    17  var (
    18  	f f2.Framework
    19  
    20  	// `name:"monitored-project-id" description:"gcp account to set up as monitored project"`
    21  	monitoredProjectID = "test-project-id"
    22  )
    23  
    24  func TestMain(m *testing.M) {
    25  	// framework.HandleFlags()
    26  	ctrl.SetLogger(fog.New())
    27  
    28  	f = f2.New(
    29  		context.Background(),
    30  	)
    31  
    32  	code := f.Run(m)
    33  	os.Exit(code)
    34  }
    35  
    36  func TestMetricsScopes(t *testing.T) {
    37  	integration.SkipIfNot(t, integration.L2)
    38  
    39  	var (
    40  		client *metricScopes.Client
    41  	)
    42  
    43  	feature := f2.NewFeature("MetricsScopes").
    44  		Setup("Create Metric Scope Client", func(ctx f2.Context, _ *testing.T) f2.Context {
    45  			client = metricScopes.New(monitoredProjectID)
    46  			return ctx
    47  		}).
    48  		Test("adding monitored project", func(ctx f2.Context, t *testing.T) f2.Context {
    49  			add, err := client.AddMonitoredProject(ctx, monitoredProjectID)
    50  			require.NoError(t, err)
    51  			require.NotEmpty(t, add)
    52  
    53  			return ctx
    54  		}).
    55  		Test("querying monitored project", func(ctx f2.Context, t *testing.T) f2.Context {
    56  			query, err := client.QueryMetricsScope(ctx)
    57  			require.NoError(t, err)
    58  			require.NotEmpty(t, query)
    59  
    60  			return ctx
    61  		}).
    62  		Test("listing projects that are monitoring the monitored project", func(ctx f2.Context, t *testing.T) f2.Context {
    63  			list, err := client.ListMetricsScope(ctx, monitoredProjectID)
    64  			require.NoError(t, err)
    65  			require.NotEmpty(t, list)
    66  
    67  			return ctx
    68  		}).
    69  		Test("removing monitored project from scoping project", func(ctx f2.Context, t *testing.T) f2.Context {
    70  			del, err := client.RemoveMetricsScope(ctx, monitoredProjectID)
    71  			require.NoError(t, err)
    72  			require.NotEmpty(t, del)
    73  
    74  			return ctx
    75  		}).Feature()
    76  
    77  	f.Test(t, feature)
    78  }
    79  

View as plain text