github.com/oam-dev/kubevela@v1.9.11/pkg/addon/suite_test.go (about) 1 /* 2 Copyright 2021 The KubeVela Authors. 3 4 Licensed under the Apache License, Version 2.0 (the "License"); 5 you may not use this file except in compliance with the License. 6 You may obtain a copy of the License at 7 8 http://www.apache.org/licenses/LICENSE-2.0 9 10 Unless required by applicable law or agreed to in writing, software 11 distributed under the License is distributed on an "AS IS" BASIS, 12 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 See the License for the specific language governing permissions and 14 limitations under the License. 15 */ 16 package addon 17 18 import ( 19 "context" 20 "path/filepath" 21 "testing" 22 "time" 23 24 . "github.com/onsi/ginkgo/v2" 25 . "github.com/onsi/gomega" 26 v12 "k8s.io/api/core/v1" 27 crdv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1" 28 metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" 29 "k8s.io/apimachinery/pkg/runtime" 30 "k8s.io/client-go/discovery" 31 clientgoscheme "k8s.io/client-go/kubernetes/scheme" 32 "k8s.io/client-go/rest" 33 ocmclusterv1 "open-cluster-management.io/api/cluster/v1" 34 ocmclusterv1alpha1 "open-cluster-management.io/api/cluster/v1alpha1" 35 ocmworkv1 "open-cluster-management.io/api/work/v1" 36 "sigs.k8s.io/controller-runtime/pkg/client" 37 "sigs.k8s.io/controller-runtime/pkg/envtest" 38 logf "sigs.k8s.io/controller-runtime/pkg/log" 39 "sigs.k8s.io/controller-runtime/pkg/log/zap" 40 41 coreoam "github.com/oam-dev/kubevela/apis/core.oam.dev" 42 43 "github.com/kubevela/workflow/pkg/cue/packages" 44 // +kubebuilder:scaffold:imports 45 ) 46 47 var cfg *rest.Config 48 var scheme *runtime.Scheme 49 var k8sClient client.Client 50 var testEnv *envtest.Environment 51 var pd *packages.PackageDiscover 52 var testns string 53 var dc *discovery.DiscoveryClient 54 55 func TestAddon(t *testing.T) { 56 RegisterFailHandler(Fail) 57 RunSpecs(t, "Addon Suite test") 58 } 59 60 var _ = BeforeSuite(func() { 61 logf.SetLogger(zap.New(zap.UseDevMode(true), zap.WriteTo(GinkgoWriter))) 62 By("bootstrapping test environment") 63 useExistCluster := false 64 testEnv = &envtest.Environment{ 65 ControlPlaneStartTimeout: time.Minute, 66 ControlPlaneStopTimeout: time.Minute, 67 CRDDirectoryPaths: []string{filepath.Join("..", "..", "charts", "vela-core", "crds")}, 68 UseExistingCluster: &useExistCluster, 69 } 70 71 var err error 72 cfg, err = testEnv.Start() 73 Expect(err).ToNot(HaveOccurred()) 74 Expect(cfg).ToNot(BeNil()) 75 scheme = runtime.NewScheme() 76 Expect(coreoam.AddToScheme(scheme)).NotTo(HaveOccurred()) 77 Expect(clientgoscheme.AddToScheme(scheme)).NotTo(HaveOccurred()) 78 Expect(crdv1.AddToScheme(scheme)).NotTo(HaveOccurred()) 79 _ = ocmclusterv1alpha1.Install(scheme) 80 _ = ocmclusterv1.Install(scheme) 81 _ = ocmworkv1.Install(scheme) 82 k8sClient, err = client.New(cfg, client.Options{Scheme: scheme}) 83 Expect(err).ToNot(HaveOccurred()) 84 Expect(k8sClient).ToNot(BeNil()) 85 86 dc, err = discovery.NewDiscoveryClientForConfig(cfg) 87 Expect(err).ToNot(HaveOccurred()) 88 Expect(dc).ShouldNot(BeNil()) 89 90 pd, err = packages.NewPackageDiscover(cfg) 91 Expect(err).ToNot(HaveOccurred()) 92 Expect(pd).ToNot(BeNil()) 93 testns = "vela-system" 94 Expect(k8sClient.Create(context.Background(), 95 &v12.Namespace{TypeMeta: metav1.TypeMeta{APIVersion: "v1", Kind: "Namespace"}, ObjectMeta: metav1.ObjectMeta{ 96 Name: testns, 97 }})) 98 99 err = stepHelmHttpServer() 100 Expect(err).Should(Succeed()) 101 }) 102 103 var _ = AfterSuite(func() { 104 By("tearing down the test environment") 105 err := testEnv.Stop() 106 Expect(err).ToNot(HaveOccurred()) 107 })