...
1 package envctl
2
3 import (
4 "context"
5 "os"
6 "testing"
7 "time"
8
9 "edge-infra.dev/pkg/k8s/runtime/controller"
10 "edge-infra.dev/test"
11 "edge-infra.dev/test/framework"
12 "edge-infra.dev/test/framework/k8s"
13 "edge-infra.dev/test/framework/k8s/envtest"
14
15 "github.com/go-logr/logr"
16 "github.com/stretchr/testify/suite"
17 "k8s.io/apimachinery/pkg/runtime"
18 )
19
20 func TestMain(m *testing.M) {
21 framework.HandleFlags()
22 os.Exit(m.Run())
23 }
24
25 type Suite struct {
26 *framework.Framework
27 *k8s.K8s
28 Scheme *runtime.Scheme
29 ctx context.Context
30 timeout time.Duration
31 tick time.Duration
32 Log logr.Logger
33 }
34
35 func TestEnvController(t *testing.T) {
36 testEnv := envtest.Setup()
37 scheme := createScheme()
38
39 mgr, _, err := create(controller.WithCfg(testEnv.Config), controller.WithMetricsAddress("0"))
40 test.NoError(err)
41
42 k := k8s.New(testEnv.Config, k8s.WithCtrlManager(mgr), k8s.WithKonfigKonnector())
43
44 f := framework.New("envctl").
45 Component("envctl").
46 Register(k)
47 mgr.GetLogger()
48
49 s := &Suite{
50 Framework: f,
51 K8s: k,
52 ctx: context.Background(),
53 timeout: k8s.Timeouts.DefaultTimeout,
54 tick: k8s.Timeouts.Tick,
55 Scheme: scheme,
56 Log: mgr.GetLogger(),
57 }
58
59 suite.Run(t, s)
60
61 t.Cleanup(func() {
62 f.NoError(testEnv.Stop())
63 })
64 }
65
View as plain text