1 package bootstrap
2
3 import (
4 "testing"
5 "time"
6
7 kustomizeApiV1beta2 "github.com/fluxcd/kustomize-controller/api/v1beta2"
8 sourceAPIv1beta2 "github.com/fluxcd/source-controller/api/v1beta2"
9 assert "github.com/stretchr/testify/assert"
10 )
11
12 func TestBucketFluxConfig(t *testing.T) {
13 b := BucketFluxConfig().Build()
14 assert.Equal(t, defaultTimeout, b.(*sourceAPIv1beta2.Bucket).Spec.Timeout.Duration)
15 assert.Equal(t, defaultInterval, b.(*sourceAPIv1beta2.Bucket).Spec.Interval.Duration)
16 assert.Equal(t, gcpProvider, b.(*sourceAPIv1beta2.Bucket).Spec.Provider)
17 assert.Equal(t, gcpEndpoint, b.(*sourceAPIv1beta2.Bucket).Spec.Endpoint)
18 assert.False(t, b.(*sourceAPIv1beta2.Bucket).Spec.Insecure)
19 }
20
21 func TestBucketName(t *testing.T) {
22 ns := "comp-rulz"
23 b := BucketFluxConfig().Namespace(ns).Build()
24 assert.Equal(t, ns, b.GetNamespace())
25 }
26
27 func TestBucketNamespace(t *testing.T) {
28 ns := "not-flux-system"
29 b := BucketFluxConfig().Namespace(ns).Build()
30 assert.Equal(t, ns, b.GetNamespace())
31 }
32
33 func TestBucketInterval(t *testing.T) {
34 i, err := time.ParseDuration("5m")
35 assert.NoError(t, err)
36
37 b := BucketFluxConfig().Interval(i).Build()
38 assert.Equal(t, i, b.(*sourceAPIv1beta2.Bucket).Spec.Interval.Duration)
39 }
40
41 func TestBucketSecretName(t *testing.T) {
42 sec := "top-secret"
43 b := BucketFluxConfig().SecretName(sec).Build()
44 assert.Equal(t, sec, b.(*sourceAPIv1beta2.Bucket).Spec.SecretRef.Name)
45 }
46
47 func TestBucketTimeout(t *testing.T) {
48 timeout, err := time.ParseDuration("10m")
49 assert.NoError(t, err)
50
51 b := BucketFluxConfig().Timeout(timeout).Build()
52 assert.Equal(t, timeout, b.(*sourceAPIv1beta2.Bucket).Spec.Timeout.Duration)
53 }
54
55 func TestBucketForCluster(t *testing.T) {
56 cluster := "bob-the-builder"
57 b := BucketFluxConfig().ForCluster(cluster).Build()
58 assert.Contains(t, *b.(*sourceAPIv1beta2.Bucket).Spec.Ignore, cluster)
59 }
60
61 func TestBucketBucketName(t *testing.T) {
62 n := "cant-jump"
63 b := BucketFluxConfig().BucketName(n).Build()
64 assert.Equal(t, n, b.(*sourceAPIv1beta2.Bucket).Spec.BucketName)
65 }
66
67 func TestBuildKustomization(t *testing.T) {
68 k := KustomizeFluxConfig().Build()
69 assert.Equal(t, defaultTimeout, k.(*kustomizeApiV1beta2.Kustomization).Spec.Timeout.Duration)
70 assert.Equal(t, defaultInterval, k.(*kustomizeApiV1beta2.Kustomization).Spec.Interval.Duration)
71 assert.Equal(t, kindBucket, k.(*kustomizeApiV1beta2.Kustomization).Spec.SourceRef.Kind)
72 assert.True(t, k.(*kustomizeApiV1beta2.Kustomization).Spec.Force)
73 assert.True(t, k.(*kustomizeApiV1beta2.Kustomization).Spec.Prune)
74 }
75
76 func TestKustomizeName(t *testing.T) {
77 n := "apply4job"
78 b := KustomizeFluxConfig().Name(n).Build()
79 assert.Equal(t, n, b.GetName())
80 }
81
82 func TestKustomizeNamespace(t *testing.T) {
83 ns := "def-not-flux-system"
84 b := KustomizeFluxConfig().Namespace(ns).Build()
85 assert.Equal(t, ns, b.GetNamespace())
86 }
87
88 func TestKustomizeInterval(t *testing.T) {
89 i, err := time.ParseDuration("5m")
90 assert.NoError(t, err)
91
92 b := KustomizeFluxConfig().Interval(i).Build()
93 assert.Equal(t, i, b.(*kustomizeApiV1beta2.Kustomization).Spec.Interval.Duration)
94 }
95
96 func TestKustomizPath(t *testing.T) {
97 p := "in/dat/dare/dir"
98 b := KustomizeFluxConfig().Path(p).Build()
99 assert.Equal(t, p, b.(*kustomizeApiV1beta2.Kustomization).Spec.Path)
100 }
101
102 func TestKustomizeTimeout(t *testing.T) {
103 timeout, err := time.ParseDuration("10m")
104 assert.NoError(t, err)
105
106 b := KustomizeFluxConfig().Timeout(timeout).Build()
107 assert.Equal(t, timeout, b.(*kustomizeApiV1beta2.Kustomization).Spec.Timeout.Duration)
108 }
109
110 func TestKustomizeBucketName(t *testing.T) {
111 bn := "can-jump"
112 b := KustomizeFluxConfig().BucketName(bn).Build()
113 assert.Equal(t, bn, b.(*kustomizeApiV1beta2.Kustomization).Spec.SourceRef.Name)
114 }
115
116 func TestKustomizePrune(t *testing.T) {
117 p := true
118 b := KustomizeFluxConfig().Prune(p).Build()
119 assert.True(t, b.(*kustomizeApiV1beta2.Kustomization).Spec.Prune)
120 }
121
View as plain text