...

Source file src/edge-infra.dev/pkg/edge/controllers/envctl/suite_test.go

Documentation: edge-infra.dev/pkg/edge/controllers/envctl

     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