Skip to content

Commit ced6ffa

Browse files
refactor: Move test helpers to testutil
1 parent 1725175 commit ced6ffa

10 files changed

Lines changed: 486 additions & 641 deletions

File tree

internal/pkg/controller/configmap_reconciler_test.go

Lines changed: 27 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import (
44
"testing"
55

66
"github.com/stakater/Reloader/internal/pkg/config"
7+
"github.com/stakater/Reloader/internal/pkg/testutil"
78
)
89

910
func TestConfigMapReconciler_NotFound(t *testing.T) {
@@ -16,7 +17,7 @@ func TestConfigMapReconciler_NotFound_ReloadOnDelete(t *testing.T) {
1617
cfg := config.NewDefault()
1718
cfg.ReloadOnDelete = true
1819

19-
deployment := testDeployment("test-deployment", "default", map[string]string{
20+
deployment := testutil.NewDeployment("test-deployment", "default", map[string]string{
2021
cfg.Annotations.ConfigmapReload: "deleted-cm",
2122
})
2223
reconciler := newConfigMapReconciler(t, cfg, deployment)
@@ -27,16 +28,16 @@ func TestConfigMapReconciler_IgnoredNamespace(t *testing.T) {
2728
cfg := config.NewDefault()
2829
cfg.IgnoredNamespaces = []string{"kube-system"}
2930

30-
cm := testConfigMap("test-cm", "kube-system")
31+
cm := testutil.NewConfigMap("test-cm", "kube-system")
3132
reconciler := newConfigMapReconciler(t, cfg, cm)
3233
assertReconcileSuccess(t, reconciler, reconcileRequest("test-cm", "kube-system"))
3334
}
3435

3536
func TestConfigMapReconciler_NoMatchingWorkloads(t *testing.T) {
3637
cfg := config.NewDefault()
3738

38-
cm := testConfigMap("test-cm", "default")
39-
deployment := testDeployment("test-deployment", "default", nil)
39+
cm := testutil.NewConfigMap("test-cm", "default")
40+
deployment := testutil.NewDeployment("test-deployment", "default", nil)
4041
reconciler := newConfigMapReconciler(t, cfg, cm, deployment)
4142
assertReconcileSuccess(t, reconciler, reconcileRequest("test-cm", "default"))
4243
}
@@ -45,17 +46,17 @@ func TestConfigMapReconciler_MatchingDeployment_AutoAnnotation(t *testing.T) {
4546
cfg := config.NewDefault()
4647
cfg.AutoReloadAll = true
4748

48-
cm := testConfigMap("test-cm", "default")
49-
deployment := testDeploymentWithEnvFrom("test-deployment", "default", "test-cm", "")
49+
cm := testutil.NewConfigMap("test-cm", "default")
50+
deployment := testutil.NewDeploymentWithEnvFrom("test-deployment", "default", "test-cm", "")
5051
reconciler := newConfigMapReconciler(t, cfg, cm, deployment)
5152
assertReconcileSuccess(t, reconciler, reconcileRequest("test-cm", "default"))
5253
}
5354

5455
func TestConfigMapReconciler_MatchingDeployment_ExplicitAnnotation(t *testing.T) {
5556
cfg := config.NewDefault()
5657

57-
cm := testConfigMap("test-cm", "default")
58-
deployment := testDeployment("test-deployment", "default", map[string]string{
58+
cm := testutil.NewConfigMap("test-cm", "default")
59+
deployment := testutil.NewDeployment("test-deployment", "default", map[string]string{
5960
cfg.Annotations.ConfigmapReload: "test-cm",
6061
})
6162
reconciler := newConfigMapReconciler(t, cfg, cm, deployment)
@@ -65,8 +66,8 @@ func TestConfigMapReconciler_MatchingDeployment_ExplicitAnnotation(t *testing.T)
6566
func TestConfigMapReconciler_WorkloadInDifferentNamespace(t *testing.T) {
6667
cfg := config.NewDefault()
6768

68-
cm := testConfigMap("test-cm", "namespace-a")
69-
deployment := testDeployment("test-deployment", "namespace-b", map[string]string{
69+
cm := testutil.NewConfigMap("test-cm", "namespace-a")
70+
deployment := testutil.NewDeployment("test-deployment", "namespace-b", map[string]string{
7071
cfg.Annotations.ConfigmapReload: "test-cm",
7172
})
7273
reconciler := newConfigMapReconciler(t, cfg, cm, deployment)
@@ -77,8 +78,8 @@ func TestConfigMapReconciler_IgnoredWorkloadType(t *testing.T) {
7778
cfg := config.NewDefault()
7879
cfg.IgnoredWorkloads = []string{"deployment"}
7980

80-
cm := testConfigMap("test-cm", "default")
81-
deployment := testDeployment("test-deployment", "default", map[string]string{
81+
cm := testutil.NewConfigMap("test-cm", "default")
82+
deployment := testutil.NewDeployment("test-deployment", "default", map[string]string{
8283
cfg.Annotations.ConfigmapReload: "test-cm",
8384
})
8485
reconciler := newConfigMapReconciler(t, cfg, cm, deployment)
@@ -88,8 +89,8 @@ func TestConfigMapReconciler_IgnoredWorkloadType(t *testing.T) {
8889
func TestConfigMapReconciler_DaemonSet(t *testing.T) {
8990
cfg := config.NewDefault()
9091

91-
cm := testConfigMap("test-cm", "default")
92-
daemonset := testDaemonSet("test-daemonset", "default", map[string]string{
92+
cm := testutil.NewConfigMap("test-cm", "default")
93+
daemonset := testutil.NewDaemonSet("test-daemonset", "default", map[string]string{
9394
cfg.Annotations.ConfigmapReload: "test-cm",
9495
})
9596
reconciler := newConfigMapReconciler(t, cfg, cm, daemonset)
@@ -99,8 +100,8 @@ func TestConfigMapReconciler_DaemonSet(t *testing.T) {
99100
func TestConfigMapReconciler_StatefulSet(t *testing.T) {
100101
cfg := config.NewDefault()
101102

102-
cm := testConfigMap("test-cm", "default")
103-
statefulset := testStatefulSet("test-statefulset", "default", map[string]string{
103+
cm := testutil.NewConfigMap("test-cm", "default")
104+
statefulset := testutil.NewStatefulSet("test-statefulset", "default", map[string]string{
104105
cfg.Annotations.ConfigmapReload: "test-cm",
105106
})
106107
reconciler := newConfigMapReconciler(t, cfg, cm, statefulset)
@@ -110,14 +111,14 @@ func TestConfigMapReconciler_StatefulSet(t *testing.T) {
110111
func TestConfigMapReconciler_MultipleWorkloads(t *testing.T) {
111112
cfg := config.NewDefault()
112113

113-
cm := testConfigMap("shared-cm", "default")
114-
deployment1 := testDeployment("deployment-1", "default", map[string]string{
114+
cm := testutil.NewConfigMap("shared-cm", "default")
115+
deployment1 := testutil.NewDeployment("deployment-1", "default", map[string]string{
115116
cfg.Annotations.ConfigmapReload: "shared-cm",
116117
})
117-
deployment2 := testDeployment("deployment-2", "default", map[string]string{
118+
deployment2 := testutil.NewDeployment("deployment-2", "default", map[string]string{
118119
cfg.Annotations.ConfigmapReload: "shared-cm",
119120
})
120-
daemonset := testDaemonSet("daemonset-1", "default", map[string]string{
121+
daemonset := testutil.NewDaemonSet("daemonset-1", "default", map[string]string{
121122
cfg.Annotations.ConfigmapReload: "shared-cm",
122123
})
123124

@@ -129,8 +130,8 @@ func TestConfigMapReconciler_VolumeMount(t *testing.T) {
129130
cfg := config.NewDefault()
130131
cfg.AutoReloadAll = true
131132

132-
cm := testConfigMap("volume-cm", "default")
133-
deployment := testDeploymentWithVolume("test-deployment", "default", "volume-cm", "")
133+
cm := testutil.NewConfigMap("volume-cm", "default")
134+
deployment := testutil.NewDeploymentWithVolume("test-deployment", "default", "volume-cm", "")
134135
reconciler := newConfigMapReconciler(t, cfg, cm, deployment)
135136
assertReconcileSuccess(t, reconciler, reconcileRequest("volume-cm", "default"))
136137
}
@@ -139,19 +140,19 @@ func TestConfigMapReconciler_ProjectedVolume(t *testing.T) {
139140
cfg := config.NewDefault()
140141
cfg.AutoReloadAll = true
141142

142-
cm := testConfigMap("projected-cm", "default")
143-
deployment := testDeploymentWithProjectedVolume("test-deployment", "default", "projected-cm", "")
143+
cm := testutil.NewConfigMap("projected-cm", "default")
144+
deployment := testutil.NewDeploymentWithProjectedVolume("test-deployment", "default", "projected-cm", "")
144145
reconciler := newConfigMapReconciler(t, cfg, cm, deployment)
145146
assertReconcileSuccess(t, reconciler, reconcileRequest("projected-cm", "default"))
146147
}
147148

148149
func TestConfigMapReconciler_SearchAnnotation(t *testing.T) {
149150
cfg := config.NewDefault()
150151

151-
cm := testConfigMapWithAnnotations("test-cm", "default", map[string]string{
152+
cm := testutil.NewConfigMapWithAnnotations("test-cm", "default", map[string]string{
152153
cfg.Annotations.Match: "true",
153154
})
154-
deployment := testDeployment("test-deployment", "default", map[string]string{
155+
deployment := testutil.NewDeployment("test-deployment", "default", map[string]string{
155156
cfg.Annotations.Search: "true",
156157
})
157158
reconciler := newConfigMapReconciler(t, cfg, cm, deployment)

internal/pkg/controller/namespace_reconciler_test.go

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import (
55

66
"github.com/stakater/Reloader/internal/pkg/config"
77
"github.com/stakater/Reloader/internal/pkg/controller"
8+
"github.com/stakater/Reloader/internal/pkg/testutil"
89
"k8s.io/apimachinery/pkg/labels"
910
)
1011

@@ -70,7 +71,7 @@ func TestNamespaceReconciler_Add(t *testing.T) {
7071
cfg.NamespaceSelectors = []labels.Selector{selector}
7172

7273
cache := controller.NewNamespaceCache(true)
73-
ns := testNamespace("test-ns", map[string]string{"env": "production"})
74+
ns := testutil.NewNamespace("test-ns", map[string]string{"env": "production"})
7475
reconciler := newNamespaceReconciler(t, cfg, cache, ns)
7576

7677
assertReconcileSuccess(t, reconciler, namespaceRequest("test-ns"))
@@ -88,7 +89,7 @@ func TestNamespaceReconciler_Remove_LabelChange(t *testing.T) {
8889
cache := controller.NewNamespaceCache(true)
8990
cache.Add("test-ns") // Pre-populate
9091

91-
ns := testNamespace("test-ns", map[string]string{"env": "staging"}) // Non-matching
92+
ns := testutil.NewNamespace("test-ns", map[string]string{"env": "staging"}) // Non-matching
9293
reconciler := newNamespaceReconciler(t, cfg, cache, ns)
9394

9495
assertReconcileSuccess(t, reconciler, namespaceRequest("test-ns"))
@@ -122,7 +123,7 @@ func TestNamespaceReconciler_MultipleSelectors(t *testing.T) {
122123
cfg.NamespaceSelectors = []labels.Selector{selector1, selector2}
123124

124125
cache := controller.NewNamespaceCache(true)
125-
ns := testNamespace("test-ns", map[string]string{"team": "platform"})
126+
ns := testutil.NewNamespace("test-ns", map[string]string{"team": "platform"})
126127
reconciler := newNamespaceReconciler(t, cfg, cache, ns)
127128

128129
assertReconcileSuccess(t, reconciler, namespaceRequest("test-ns"))
@@ -138,7 +139,7 @@ func TestNamespaceReconciler_NoLabels(t *testing.T) {
138139
cfg.NamespaceSelectors = []labels.Selector{selector}
139140

140141
cache := controller.NewNamespaceCache(true)
141-
ns := testNamespace("test-ns", nil) // No labels
142+
ns := testutil.NewNamespace("test-ns", nil) // No labels
142143
reconciler := newNamespaceReconciler(t, cfg, cache, ns)
143144

144145
assertReconcileSuccess(t, reconciler, namespaceRequest("test-ns"))

internal/pkg/controller/retry_test.go

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import (
77
"github.com/stakater/Reloader/internal/pkg/config"
88
"github.com/stakater/Reloader/internal/pkg/controller"
99
"github.com/stakater/Reloader/internal/pkg/reload"
10+
"github.com/stakater/Reloader/internal/pkg/testutil"
1011
"github.com/stakater/Reloader/internal/pkg/workload"
1112
appsv1 "k8s.io/api/apps/v1"
1213
batchv1 "k8s.io/api/batch/v1"
@@ -27,7 +28,7 @@ func TestUpdateWorkloadWithRetry_WorkloadTypes(t *testing.T) {
2728
}{
2829
{
2930
name: "Deployment",
30-
object: testDeployment("test-deployment", "default", nil),
31+
object: testutil.NewDeployment("test-deployment", "default", nil),
3132
workload: func(o runtime.Object) workload.WorkloadAccessor {
3233
return workload.NewDeploymentWorkload(o.(*appsv1.Deployment))
3334
},
@@ -44,7 +45,7 @@ func TestUpdateWorkloadWithRetry_WorkloadTypes(t *testing.T) {
4445
},
4546
{
4647
name: "DaemonSet",
47-
object: testDaemonSet("test-daemonset", "default", nil),
48+
object: testutil.NewDaemonSet("test-daemonset", "default", nil),
4849
workload: func(o runtime.Object) workload.WorkloadAccessor {
4950
return workload.NewDaemonSetWorkload(o.(*appsv1.DaemonSet))
5051
},
@@ -61,7 +62,7 @@ func TestUpdateWorkloadWithRetry_WorkloadTypes(t *testing.T) {
6162
},
6263
{
6364
name: "StatefulSet",
64-
object: testStatefulSet("test-statefulset", "default", nil),
65+
object: testutil.NewStatefulSet("test-statefulset", "default", nil),
6566
workload: func(o runtime.Object) workload.WorkloadAccessor {
6667
return workload.NewStatefulSetWorkload(o.(*appsv1.StatefulSet))
6768
},
@@ -78,7 +79,7 @@ func TestUpdateWorkloadWithRetry_WorkloadTypes(t *testing.T) {
7879
},
7980
{
8081
name: "Job",
81-
object: testJob("test-job", "default"),
82+
object: testutil.NewJob("test-job", "default"),
8283
workload: func(o runtime.Object) workload.WorkloadAccessor {
8384
return workload.NewJobWorkload(o.(*batchv1.Job))
8485
},
@@ -95,7 +96,7 @@ func TestUpdateWorkloadWithRetry_WorkloadTypes(t *testing.T) {
9596
},
9697
{
9798
name: "CronJob",
98-
object: testCronJob("test-cronjob", "default"),
99+
object: testutil.NewCronJob("test-cronjob", "default"),
99100
workload: func(o runtime.Object) workload.WorkloadAccessor {
100101
return workload.NewCronJobWorkload(o.(*batchv1.CronJob))
101102
},
@@ -122,7 +123,7 @@ func TestUpdateWorkloadWithRetry_WorkloadTypes(t *testing.T) {
122123
reloadService := reload.NewService(cfg)
123124

124125
fakeClient := fake.NewClientBuilder().
125-
WithScheme(testScheme()).
126+
WithScheme(testutil.NewScheme()).
126127
WithRuntimeObjects(tt.object).
127128
Build()
128129

@@ -201,9 +202,9 @@ func TestUpdateWorkloadWithRetry_Strategies(t *testing.T) {
201202
cfg.ReloadStrategy = tt.strategy
202203
reloadService := reload.NewService(cfg)
203204

204-
deployment := testDeployment("test-deployment", "default", nil)
205+
deployment := testutil.NewDeployment("test-deployment", "default", nil)
205206
fakeClient := fake.NewClientBuilder().
206-
WithScheme(testScheme()).
207+
WithScheme(testutil.NewScheme()).
207208
WithObjects(deployment).
208209
Build()
209210

@@ -245,7 +246,7 @@ func TestUpdateWorkloadWithRetry_NoUpdate(t *testing.T) {
245246
cfg := config.NewDefault()
246247
reloadService := reload.NewService(cfg)
247248

248-
deployment := testDeployment("test-deployment", "default", nil)
249+
deployment := testutil.NewDeployment("test-deployment", "default", nil)
249250
deployment.Spec.Template.Spec.Containers[0].Env = []corev1.EnvVar{
250251
{
251252
Name: "STAKATER_TEST_CM_CONFIGMAP",
@@ -254,7 +255,7 @@ func TestUpdateWorkloadWithRetry_NoUpdate(t *testing.T) {
254255
}
255256

256257
fakeClient := fake.NewClientBuilder().
257-
WithScheme(testScheme()).
258+
WithScheme(testutil.NewScheme()).
258259
WithObjects(deployment).
259260
Build()
260261

0 commit comments

Comments
 (0)