112 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			Go
		
	
	
	
			
		
		
	
	
			112 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			Go
		
	
	
	
/*
 | 
						|
Copyright 2020 The Flux authors
 | 
						|
 | 
						|
Licensed under the Apache License, Version 2.0 (the "License");
 | 
						|
you may not use this file except in compliance with the License.
 | 
						|
You may obtain a copy of the License at
 | 
						|
 | 
						|
    http://www.apache.org/licenses/LICENSE-2.0
 | 
						|
 | 
						|
Unless required by applicable law or agreed to in writing, software
 | 
						|
distributed under the License is distributed on an "AS IS" BASIS,
 | 
						|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | 
						|
See the License for the specific language governing permissions and
 | 
						|
limitations under the License.
 | 
						|
*/
 | 
						|
 | 
						|
package controllers
 | 
						|
 | 
						|
import (
 | 
						|
	"path/filepath"
 | 
						|
	"testing"
 | 
						|
 | 
						|
	. "github.com/onsi/ginkgo"
 | 
						|
	. "github.com/onsi/gomega"
 | 
						|
	"k8s.io/client-go/kubernetes/scheme"
 | 
						|
	"k8s.io/client-go/rest"
 | 
						|
	ctrl "sigs.k8s.io/controller-runtime"
 | 
						|
	"sigs.k8s.io/controller-runtime/pkg/client"
 | 
						|
	"sigs.k8s.io/controller-runtime/pkg/envtest"
 | 
						|
	"sigs.k8s.io/controller-runtime/pkg/envtest/printer"
 | 
						|
	"sigs.k8s.io/controller-runtime/pkg/log/zap"
 | 
						|
 | 
						|
	imagev1_reflect "github.com/fluxcd/image-reflector-controller/api/v1alpha2"
 | 
						|
	sourcev1 "github.com/fluxcd/source-controller/api/v1beta1"
 | 
						|
 | 
						|
	imagev1 "github.com/fluxcd/image-automation-controller/api/v1alpha2"
 | 
						|
	// +kubebuilder:scaffold:imports
 | 
						|
)
 | 
						|
 | 
						|
// These tests use Ginkgo (BDD-style Go testing framework). Refer to
 | 
						|
// http://onsi.github.io/ginkgo/ to learn more about Ginkgo.
 | 
						|
 | 
						|
var cfg *rest.Config
 | 
						|
var k8sClient client.Client
 | 
						|
var k8sManager ctrl.Manager
 | 
						|
var imageAutoReconciler *ImageUpdateAutomationReconciler
 | 
						|
var testEnv *envtest.Environment
 | 
						|
 | 
						|
func TestAPIs(t *testing.T) {
 | 
						|
	RegisterFailHandler(Fail)
 | 
						|
 | 
						|
	RunSpecsWithDefaultAndCustomReporters(t,
 | 
						|
		"Controller Suite",
 | 
						|
		[]Reporter{printer.NewlineReporter{}})
 | 
						|
}
 | 
						|
 | 
						|
var _ = BeforeSuite(func(done Done) {
 | 
						|
	ctrl.SetLogger(
 | 
						|
		zap.New(zap.WriteTo(GinkgoWriter), zap.UseDevMode(true)),
 | 
						|
	)
 | 
						|
 | 
						|
	By("bootstrapping test environment")
 | 
						|
	testEnv = &envtest.Environment{
 | 
						|
		CRDDirectoryPaths: []string{
 | 
						|
			filepath.Join("..", "config", "crd", "bases"),
 | 
						|
			filepath.Join("testdata", "crds"),
 | 
						|
		},
 | 
						|
	}
 | 
						|
 | 
						|
	var err error
 | 
						|
	cfg, err = testEnv.Start()
 | 
						|
	Expect(err).ToNot(HaveOccurred())
 | 
						|
	Expect(cfg).ToNot(BeNil())
 | 
						|
 | 
						|
	Expect(sourcev1.AddToScheme(scheme.Scheme)).To(Succeed())
 | 
						|
	Expect(imagev1_reflect.AddToScheme(scheme.Scheme)).To(Succeed())
 | 
						|
 | 
						|
	Expect(imagev1.AddToScheme(scheme.Scheme)).To(Succeed())
 | 
						|
	// +kubebuilder:scaffold:scheme
 | 
						|
 | 
						|
	k8sManager, err = ctrl.NewManager(cfg, ctrl.Options{
 | 
						|
		Scheme: scheme.Scheme,
 | 
						|
	})
 | 
						|
	Expect(err).ToNot(HaveOccurred())
 | 
						|
 | 
						|
	imageAutoReconciler = &ImageUpdateAutomationReconciler{
 | 
						|
		Client: k8sManager.GetClient(),
 | 
						|
		Scheme: scheme.Scheme,
 | 
						|
	}
 | 
						|
	Expect(imageAutoReconciler.SetupWithManager(k8sManager)).To(Succeed())
 | 
						|
 | 
						|
	go func() {
 | 
						|
		defer GinkgoRecover()
 | 
						|
		err = k8sManager.Start(ctrl.SetupSignalHandler())
 | 
						|
		Expect(err).ToNot(HaveOccurred())
 | 
						|
	}()
 | 
						|
 | 
						|
	// Specifically an uncached client. Use <reconciler>.Get if you
 | 
						|
	// want to see what the reconcilers see.
 | 
						|
	k8sClient, err = client.New(cfg, client.Options{Scheme: scheme.Scheme})
 | 
						|
	Expect(err).ToNot(HaveOccurred())
 | 
						|
	Expect(k8sClient).ToNot(BeNil())
 | 
						|
 | 
						|
	close(done)
 | 
						|
}, 60)
 | 
						|
 | 
						|
var _ = AfterSuite(func() {
 | 
						|
	By("tearing down the test environment")
 | 
						|
	err := testEnv.Stop()
 | 
						|
	Expect(err).ToNot(HaveOccurred())
 | 
						|
})
 |