Experimenting with no ginkgo/gomega

This commit is contained in:
Francesco Renzi
2023-03-22 11:54:15 +00:00
parent f49d08e4bc
commit 065655be7e
8 changed files with 4067 additions and 3929 deletions

View File

@@ -8,6 +8,7 @@ import (
"golang.org/x/sync/errgroup" "golang.org/x/sync/errgroup"
corev1 "k8s.io/api/core/v1" corev1 "k8s.io/api/core/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/client-go/rest"
ctrl "sigs.k8s.io/controller-runtime" ctrl "sigs.k8s.io/controller-runtime"
"sigs.k8s.io/controller-runtime/pkg/client" "sigs.k8s.io/controller-runtime/pkg/client"
"sigs.k8s.io/controller-runtime/pkg/manager" "sigs.k8s.io/controller-runtime/pkg/manager"
@@ -31,16 +32,16 @@ func startManagers(t ginkgo.GinkgoTInterface, first manager.Manager, others ...m
} }
} }
func createNamespace(t ginkgo.GinkgoTInterface, client client.Client) (*corev1.Namespace, manager.Manager) { func createNamespace(t ginkgo.GinkgoTInterface, client client.Client, cfg *rest.Config) (*corev1.Namespace, manager.Manager) {
ns := &corev1.Namespace{ ns := &corev1.Namespace{
ObjectMeta: metav1.ObjectMeta{Name: "testns-autoscaling" + RandStringRunes(5)}, ObjectMeta: metav1.ObjectMeta{Name: "testns-autoscaling" + RandStringRunes(5)},
} }
err := k8sClient.Create(context.Background(), ns) err := client.Create(context.Background(), ns)
require.NoError(t, err) require.NoError(t, err)
t.Cleanup(func() { t.Cleanup(func() {
err := k8sClient.Delete(context.Background(), ns) err := client.Delete(context.Background(), ns)
require.NoError(t, err) require.NoError(t, err)
}) })
@@ -64,7 +65,7 @@ func createDefaultSecret(t ginkgo.GinkgoTInterface, client client.Client, namesp
}, },
} }
err := k8sClient.Create(context.Background(), secret) err := client.Create(context.Background(), secret)
require.NoError(t, err) require.NoError(t, err)
return secret return secret

View File

@@ -16,73 +16,73 @@ limitations under the License.
package actionsgithubcom package actionsgithubcom
import ( // import (
"os" // "os"
"path/filepath" // "path/filepath"
"testing" // "testing"
//
"github.com/onsi/ginkgo/config" // "github.com/onsi/ginkgo/config"
//
. "github.com/onsi/ginkgo/v2" // . "github.com/onsi/ginkgo/v2"
. "github.com/onsi/gomega" // . "github.com/onsi/gomega"
//
actionsv1alpha1 "github.com/actions/actions-runner-controller/apis/actions.github.com/v1alpha1" // actionsv1alpha1 "github.com/actions/actions-runner-controller/apis/actions.github.com/v1alpha1"
"k8s.io/client-go/kubernetes/scheme" // "k8s.io/client-go/kubernetes/scheme"
"k8s.io/client-go/rest" // "k8s.io/client-go/rest"
"sigs.k8s.io/controller-runtime/pkg/client" // "sigs.k8s.io/controller-runtime/pkg/client"
"sigs.k8s.io/controller-runtime/pkg/envtest" // "sigs.k8s.io/controller-runtime/pkg/envtest"
logf "sigs.k8s.io/controller-runtime/pkg/log" // logf "sigs.k8s.io/controller-runtime/pkg/log"
"sigs.k8s.io/controller-runtime/pkg/log/zap" // "sigs.k8s.io/controller-runtime/pkg/log/zap"
// +kubebuilder:scaffold:imports // // +kubebuilder:scaffold:imports
) // )
//
// These tests use Ginkgo (BDD-style Go testing framework). Refer to // // These tests use Ginkgo (BDD-style Go testing framework). Refer to
// http://onsi.github.io/ginkgo/ to learn more about Ginkgo. // // http://onsi.github.io/ginkgo/ to learn more about Ginkgo.
//
var ( // var (
cfg *rest.Config // cfg *rest.Config
k8sClient client.Client // k8sClient client.Client
testEnv *envtest.Environment // testEnv *envtest.Environment
) // )
//
func TestAPIs(t *testing.T) { // func TestAPIs(t *testing.T) {
RegisterFailHandler(Fail) // RegisterFailHandler(Fail)
//
config.GinkgoConfig.FocusStrings = append(config.GinkgoConfig.FocusStrings, os.Getenv("GINKGO_FOCUS")) // config.GinkgoConfig.FocusStrings = append(config.GinkgoConfig.FocusStrings, os.Getenv("GINKGO_FOCUS"))
//
RunSpecs(t, "Controller Suite") // RunSpecs(t, "Controller Suite")
} // }
//
var _ = BeforeSuite(func() { // var _ = BeforeSuite(func() {
logf.SetLogger(zap.New(zap.UseDevMode(true), zap.WriteTo(GinkgoWriter))) // logf.SetLogger(zap.New(zap.UseDevMode(true), zap.WriteTo(GinkgoWriter)))
//
By("bootstrapping test environment") // By("bootstrapping test environment")
testEnv = &envtest.Environment{ // testEnv = &envtest.Environment{
CRDDirectoryPaths: []string{filepath.Join("../..", "config", "crd", "bases")}, // CRDDirectoryPaths: []string{filepath.Join("../..", "config", "crd", "bases")},
} // }
//
// Avoids the following error: // // Avoids the following error:
// 2021-03-19T15:14:11.673+0900 ERROR controller-runtime.controller Reconciler error {"controller": "testns-tvjzjrunner", "request": "testns-gdnyx/example-runnerdeploy-zps4z-j5562", "error": "Pod \"example-runnerdeploy-zps4z-j5562\" is invalid: [spec.containers[1].image: Required value, spec.containers[1].securityContext.privileged: Forbidden: disallowed by cluster policy]"} // // 2021-03-19T15:14:11.673+0900 ERROR controller-runtime.controller Reconciler error {"controller": "testns-tvjzjrunner", "request": "testns-gdnyx/example-runnerdeploy-zps4z-j5562", "error": "Pod \"example-runnerdeploy-zps4z-j5562\" is invalid: [spec.containers[1].image: Required value, spec.containers[1].securityContext.privileged: Forbidden: disallowed by cluster policy]"}
testEnv.ControlPlane.GetAPIServer().Configure(). // testEnv.ControlPlane.GetAPIServer().Configure().
Append("allow-privileged", "true") // Append("allow-privileged", "true")
//
var err error // var err error
cfg, err = testEnv.Start() // cfg, err = testEnv.Start()
Expect(err).ToNot(HaveOccurred()) // Expect(err).ToNot(HaveOccurred())
Expect(cfg).ToNot(BeNil()) // Expect(cfg).ToNot(BeNil())
//
err = actionsv1alpha1.AddToScheme(scheme.Scheme) // err = actionsv1alpha1.AddToScheme(scheme.Scheme)
Expect(err).NotTo(HaveOccurred()) // Expect(err).NotTo(HaveOccurred())
//
// +kubebuilder:scaffold:scheme // // +kubebuilder:scaffold:scheme
//
k8sClient, err = client.New(cfg, client.Options{Scheme: scheme.Scheme}) // k8sClient, err = client.New(cfg, client.Options{Scheme: scheme.Scheme})
Expect(err).ToNot(HaveOccurred()) // Expect(err).ToNot(HaveOccurred())
Expect(k8sClient).ToNot(BeNil()) // Expect(k8sClient).ToNot(BeNil())
}) // })
//
var _ = AfterSuite(func() { // var _ = AfterSuite(func() {
By("tearing down the test environment") // By("tearing down the test environment")
err := testEnv.Stop() // err := testEnv.Stop()
Expect(err).ToNot(HaveOccurred()) // Expect(err).ToNot(HaveOccurred())
}) // })

1
go.mod
View File

@@ -22,6 +22,7 @@ require (
github.com/onsi/gomega v1.27.2 github.com/onsi/gomega v1.27.2
github.com/pkg/errors v0.9.1 github.com/pkg/errors v0.9.1
github.com/prometheus/client_golang v1.14.0 github.com/prometheus/client_golang v1.14.0
github.com/rentziass/eventually v0.0.0-20230321190617-a198b1b1faa3
github.com/stretchr/testify v1.8.2 github.com/stretchr/testify v1.8.2
github.com/teambition/rrule-go v1.8.2 github.com/teambition/rrule-go v1.8.2
go.uber.org/multierr v1.7.0 go.uber.org/multierr v1.7.0

2
go.sum
View File

@@ -333,6 +333,8 @@ github.com/prometheus/procfs v0.6.0/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1
github.com/prometheus/procfs v0.7.3/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= github.com/prometheus/procfs v0.7.3/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA=
github.com/prometheus/procfs v0.8.0 h1:ODq8ZFEaYeCaZOJlZZdJA2AbQR98dSHSM1KW/You5mo= github.com/prometheus/procfs v0.8.0 h1:ODq8ZFEaYeCaZOJlZZdJA2AbQR98dSHSM1KW/You5mo=
github.com/prometheus/procfs v0.8.0/go.mod h1:z7EfXMXOkbkqb9IINtpCn86r/to3BnA0uaxHdg830/4= github.com/prometheus/procfs v0.8.0/go.mod h1:z7EfXMXOkbkqb9IINtpCn86r/to3BnA0uaxHdg830/4=
github.com/rentziass/eventually v0.0.0-20230321190617-a198b1b1faa3 h1:rzJaKZtKN0I3zA9Hq7J93sGaf1K83vik8nmoIHirtQY=
github.com/rentziass/eventually v0.0.0-20230321190617-a198b1b1faa3/go.mod h1:jiSDJFv0sra6DK66duTH5V4kCfqd9OvmFtflPOExNVI=
github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
github.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf35Ld67mk= github.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf35Ld67mk=