package bootstrap import ( "testing" "time" kustomizeApiV1beta2 "github.com/fluxcd/kustomize-controller/api/v1beta2" sourceAPIv1beta2 "github.com/fluxcd/source-controller/api/v1beta2" assert "github.com/stretchr/testify/assert" ) func TestBucketFluxConfig(t *testing.T) { b := BucketFluxConfig().Build() assert.Equal(t, defaultTimeout, b.(*sourceAPIv1beta2.Bucket).Spec.Timeout.Duration) assert.Equal(t, defaultInterval, b.(*sourceAPIv1beta2.Bucket).Spec.Interval.Duration) assert.Equal(t, gcpProvider, b.(*sourceAPIv1beta2.Bucket).Spec.Provider) assert.Equal(t, gcpEndpoint, b.(*sourceAPIv1beta2.Bucket).Spec.Endpoint) assert.False(t, b.(*sourceAPIv1beta2.Bucket).Spec.Insecure) } func TestBucketName(t *testing.T) { ns := "comp-rulz" b := BucketFluxConfig().Namespace(ns).Build() assert.Equal(t, ns, b.GetNamespace()) } func TestBucketNamespace(t *testing.T) { ns := "not-flux-system" b := BucketFluxConfig().Namespace(ns).Build() assert.Equal(t, ns, b.GetNamespace()) } func TestBucketInterval(t *testing.T) { i, err := time.ParseDuration("5m") assert.NoError(t, err) b := BucketFluxConfig().Interval(i).Build() assert.Equal(t, i, b.(*sourceAPIv1beta2.Bucket).Spec.Interval.Duration) } func TestBucketSecretName(t *testing.T) { sec := "top-secret" b := BucketFluxConfig().SecretName(sec).Build() assert.Equal(t, sec, b.(*sourceAPIv1beta2.Bucket).Spec.SecretRef.Name) } func TestBucketTimeout(t *testing.T) { timeout, err := time.ParseDuration("10m") assert.NoError(t, err) b := BucketFluxConfig().Timeout(timeout).Build() assert.Equal(t, timeout, b.(*sourceAPIv1beta2.Bucket).Spec.Timeout.Duration) } func TestBucketForCluster(t *testing.T) { cluster := "bob-the-builder" b := BucketFluxConfig().ForCluster(cluster).Build() assert.Contains(t, *b.(*sourceAPIv1beta2.Bucket).Spec.Ignore, cluster) } func TestBucketBucketName(t *testing.T) { n := "cant-jump" b := BucketFluxConfig().BucketName(n).Build() assert.Equal(t, n, b.(*sourceAPIv1beta2.Bucket).Spec.BucketName) } func TestBuildKustomization(t *testing.T) { k := KustomizeFluxConfig().Build() assert.Equal(t, defaultTimeout, k.(*kustomizeApiV1beta2.Kustomization).Spec.Timeout.Duration) assert.Equal(t, defaultInterval, k.(*kustomizeApiV1beta2.Kustomization).Spec.Interval.Duration) assert.Equal(t, kindBucket, k.(*kustomizeApiV1beta2.Kustomization).Spec.SourceRef.Kind) assert.True(t, k.(*kustomizeApiV1beta2.Kustomization).Spec.Force) assert.True(t, k.(*kustomizeApiV1beta2.Kustomization).Spec.Prune) } func TestKustomizeName(t *testing.T) { n := "apply4job" b := KustomizeFluxConfig().Name(n).Build() assert.Equal(t, n, b.GetName()) } func TestKustomizeNamespace(t *testing.T) { ns := "def-not-flux-system" b := KustomizeFluxConfig().Namespace(ns).Build() assert.Equal(t, ns, b.GetNamespace()) } func TestKustomizeInterval(t *testing.T) { i, err := time.ParseDuration("5m") assert.NoError(t, err) b := KustomizeFluxConfig().Interval(i).Build() assert.Equal(t, i, b.(*kustomizeApiV1beta2.Kustomization).Spec.Interval.Duration) } func TestKustomizPath(t *testing.T) { p := "in/dat/dare/dir" b := KustomizeFluxConfig().Path(p).Build() assert.Equal(t, p, b.(*kustomizeApiV1beta2.Kustomization).Spec.Path) } func TestKustomizeTimeout(t *testing.T) { timeout, err := time.ParseDuration("10m") assert.NoError(t, err) b := KustomizeFluxConfig().Timeout(timeout).Build() assert.Equal(t, timeout, b.(*kustomizeApiV1beta2.Kustomization).Spec.Timeout.Duration) } func TestKustomizeBucketName(t *testing.T) { bn := "can-jump" b := KustomizeFluxConfig().BucketName(bn).Build() assert.Equal(t, bn, b.(*kustomizeApiV1beta2.Kustomization).Spec.SourceRef.Name) } func TestKustomizePrune(t *testing.T) { p := true b := KustomizeFluxConfig().Prune(p).Build() assert.True(t, b.(*kustomizeApiV1beta2.Kustomization).Spec.Prune) }