...
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
21 monitoredProjectID = "test-project-id"
22 )
23
24 func TestMain(m *testing.M) {
25
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