| // Licensed to the Apache Software Foundation (ASF) under one | |
| // or more contributor license agreements. See the NOTICE file | |
| // distributed with this work for additional information | |
| // regarding copyright ownership. The ASF licenses this file | |
| // to you 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. | |
| /* | |
| Copyright 2023. | |
| 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 controller | |
| import ( | |
| dorisv1 "github.com/apache/doris-operator/api/doris/v1" | |
| "path/filepath" | |
| "testing" | |
| . "github.com/onsi/ginkgo/v2" | |
| . "github.com/onsi/gomega" | |
| "k8s.io/client-go/kubernetes/scheme" | |
| "k8s.io/client-go/rest" | |
| "sigs.k8s.io/controller-runtime/pkg/client" | |
| "sigs.k8s.io/controller-runtime/pkg/envtest" | |
| logf "sigs.k8s.io/controller-runtime/pkg/log" | |
| "sigs.k8s.io/controller-runtime/pkg/log/zap" | |
| //+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 testEnv *envtest.Environment | |
| func TestAPIs(t *testing.T) { | |
| RegisterFailHandler(Fail) | |
| RunSpecs(t, "Controller Suite") | |
| } | |
| var _ = BeforeSuite(func() { | |
| logf.SetLogger(zap.New(zap.WriteTo(GinkgoWriter), zap.UseDevMode(true))) | |
| By("bootstrapping test environment") | |
| testEnv = &envtest.Environment{ | |
| CRDDirectoryPaths: []string{filepath.Join("..", "..", "config", "crd", "bases")}, | |
| ErrorIfCRDPathMissing: true, | |
| } | |
| var err error | |
| // cfg is defined in this file globally. | |
| cfg, err = testEnv.Start() | |
| Expect(err).NotTo(HaveOccurred()) | |
| Expect(cfg).NotTo(BeNil()) | |
| err = dorisv1.AddToScheme(scheme.Scheme) | |
| Expect(err).NotTo(HaveOccurred()) | |
| //+kubebuilder:scaffold:scheme | |
| k8sClient, err = client.New(cfg, client.Options{Scheme: scheme.Scheme}) | |
| Expect(err).NotTo(HaveOccurred()) | |
| Expect(k8sClient).NotTo(BeNil()) | |
| }) | |
| var _ = AfterSuite(func() { | |
| By("tearing down the test environment") | |
| err := testEnv.Stop() | |
| Expect(err).NotTo(HaveOccurred()) | |
| }) |