diff --git a/.github/workflows/tests.yaml b/.github/workflows/tests.yaml index 9ecbf2e..1ea8541 100644 --- a/.github/workflows/tests.yaml +++ b/.github/workflows/tests.yaml @@ -24,7 +24,6 @@ jobs: go-version: "stable" - uses: dominikh/staticcheck-action@v1 with: - build-tags: suite install-go: false integration: needs: @@ -36,7 +35,8 @@ jobs: - uses: actions/setup-go@v4 with: go-version: "stable" - - run: | + - name: integration + run: | go install sigs.k8s.io/controller-runtime/tools/setup-envtest@latest source <(setup-envtest use -p env) - go test ./... -tags suite + make test diff --git a/pkgs/controllers/originissuer_suite_test.go b/pkgs/controllers/originissuer_suite_test.go index d1839dd..6e8ece0 100644 --- a/pkgs/controllers/originissuer_suite_test.go +++ b/pkgs/controllers/originissuer_suite_test.go @@ -1,21 +1,14 @@ -//go:build suite -// +build suite - package controllers import ( "context" - "log" "os" "path/filepath" "testing" "time" cmapi "github.com/cert-manager/cert-manager/pkg/apis/certmanager/v1" - "github.com/cloudflare/origin-ca-issuer/internal/cfapi" v1 "github.com/cloudflare/origin-ca-issuer/pkgs/apis/v1" - "github.com/go-logr/zerologr" - "github.com/rs/zerolog" corev1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/types" @@ -30,27 +23,6 @@ import ( "sigs.k8s.io/controller-runtime/pkg/reconcile" ) -var cfg *rest.Config - -func TestMain(m *testing.M) { - zl := zerolog.Nop() - logf.SetLogger(zerologr.New(&zl)) - t := &envtest.Environment{ - CRDDirectoryPaths: []string{filepath.Join("..", "..", "deploy", "crds")}, - } - cmapi.AddToScheme(scheme.Scheme) - v1.AddToScheme(scheme.Scheme) - - var err error - if cfg, err = t.Start(); err != nil { - log.Fatal(err) - } - - code := m.Run() - t.Stop() - os.Exit(code) -} - func TestOriginIssuerReconcileSuite(t *testing.T) { issuer := &v1.OriginIssuer{ ObjectMeta: metav1.ObjectMeta{ @@ -77,6 +49,15 @@ func TestOriginIssuerReconcileSuite(t *testing.T) { }, } + if os.Getenv("KUBEBUILDER_ASSETS") == "" { + t.Skip("kubebuilder environment was not setup") + } + + cfg, err := envtestConfig(t) + if err != nil { + t.Fatalf("error starting envtest: %v", err) + } + mgr, err := manager.New(cfg, manager.Options{ Metrics: metricsserver.Options{ BindAddress: "0", @@ -88,16 +69,11 @@ func TestOriginIssuerReconcileSuite(t *testing.T) { } c := mgr.GetClient() - f := cfapi.FactoryFunc(func(serviceKey []byte) (cfapi.Interface, error) { - return nil, nil - }) - controller := &OriginIssuerController{ - Client: c, - Reader: c, - Clock: clock.RealClock{}, - Factory: f, - Log: logf.Log, + Client: c, + Reader: c, + Clock: clock.RealClock{}, + Log: logf.Log, } builder.ControllerManagedBy(mgr). @@ -138,6 +114,29 @@ func TestOriginIssuerReconcileSuite(t *testing.T) { }, 5*time.Second, 10*time.Millisecond, "OriginIssuer reconciler") } +func envtestConfig(t *testing.T) (*rest.Config, error) { + t.Helper() + + env := &envtest.Environment{ + CRDDirectoryPaths: []string{filepath.Join("..", "..", "deploy", "crds")}, + } + cmapi.AddToScheme(scheme.Scheme) + v1.AddToScheme(scheme.Scheme) + + cfg, err := env.Start() + if err != nil { + return nil, err + } + + t.Cleanup(func() { + if err := env.Stop(); err != nil { + t.Fatal(err) + } + }) + + return cfg, nil +} + func StartTestManager(mgr manager.Manager, t *testing.T) (context.CancelFunc, chan error) { t.Helper()