Skip to content
This repository was archived by the owner on Apr 11, 2024. It is now read-only.

Commit 1357d8e

Browse files
committed
test: move customimage unit tests to their own package
1 parent 950eb29 commit 1357d8e

File tree

5 files changed

+173
-150
lines changed

5 files changed

+173
-150
lines changed
Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
// Copyright 2023 D2iQ, Inc. All rights reserved.
2+
// SPDX-License-Identifier: Apache-2.0
3+
4+
package customimage
5+
6+
import (
7+
. "github.com/onsi/ginkgo/v2"
8+
"github.com/onsi/gomega"
9+
apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"
10+
runtimehooksv1 "sigs.k8s.io/cluster-api/exp/runtime/hooks/api/v1alpha1"
11+
12+
"github.com/d2iq-labs/cluster-api-runtime-extensions-nutanix/common/pkg/capi/clustertopology/handlers/mutation"
13+
"github.com/d2iq-labs/cluster-api-runtime-extensions-nutanix/common/pkg/testutils/capitest"
14+
"github.com/d2iq-labs/cluster-api-runtime-extensions-nutanix/common/pkg/testutils/capitest/request"
15+
dockerclusterconfig "github.com/d2iq-labs/cluster-api-runtime-extensions-nutanix/pkg/handlers/docker/clusterconfig"
16+
"github.com/d2iq-labs/cluster-api-runtime-extensions-nutanix/pkg/handlers/generic/clusterconfig"
17+
)
18+
19+
var _ = Describe("Docker CustomImage patches for ControlPlane", func() {
20+
patchGenerator := func() mutation.GeneratePatches {
21+
return mutation.NewMetaGeneratePatchesHandler("", NewControlPlanePatch()).(mutation.GeneratePatches)
22+
}
23+
24+
testDefs := []capitest.PatchTestDef{
25+
{
26+
Name: "image unset for control plane",
27+
Vars: []runtimehooksv1.Variable{
28+
capitest.VariableWithValue(
29+
"builtin",
30+
apiextensionsv1.JSON{Raw: []byte(`{"controlPlane": {"version": "v1.2.3"}}`)},
31+
),
32+
},
33+
RequestItem: request.NewCPDockerMachineTemplateRequestItem("1234"),
34+
ExpectedPatchMatchers: []capitest.JSONPatchMatcher{{
35+
Operation: "add",
36+
Path: "/spec/template/spec/customImage",
37+
ValueMatcher: gomega.Equal("ghcr.io/mesosphere/kind-node:v1.2.3"),
38+
}},
39+
},
40+
{
41+
Name: "image set for control plane",
42+
Vars: []runtimehooksv1.Variable{
43+
capitest.VariableWithValue(
44+
clusterconfig.MetaVariableName,
45+
"a-specific-image",
46+
clusterconfig.MetaControlPlaneConfigName,
47+
dockerclusterconfig.DockerVariableName,
48+
VariableName,
49+
),
50+
capitest.VariableWithValue(
51+
"builtin",
52+
apiextensionsv1.JSON{
53+
Raw: []byte(`{"machineDeployment": {"class": "a-worker"}}`),
54+
},
55+
),
56+
},
57+
RequestItem: request.NewCPDockerMachineTemplateRequestItem("1234"),
58+
ExpectedPatchMatchers: []capitest.JSONPatchMatcher{{
59+
Operation: "add",
60+
Path: "/spec/template/spec/customImage",
61+
ValueMatcher: gomega.Equal("a-specific-image"),
62+
}},
63+
},
64+
}
65+
66+
// create test node for each case
67+
for testIdx := range testDefs {
68+
tt := testDefs[testIdx]
69+
It(tt.Name, func() {
70+
capitest.AssertGeneratePatches(
71+
GinkgoT(),
72+
patchGenerator,
73+
&tt,
74+
)
75+
})
76+
}
77+
})
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
// Copyright 2023 D2iQ, Inc. All rights reserved.
2+
// SPDX-License-Identifier: Apache-2.0
3+
4+
package customimage
5+
6+
import (
7+
"testing"
8+
9+
. "github.com/onsi/ginkgo/v2"
10+
. "github.com/onsi/gomega"
11+
)
12+
13+
func TestCustomImagePatch(t *testing.T) {
14+
RegisterFailHandler(Fail)
15+
RunSpecs(t, "Docker CustomImage patches for ControlPlane and Workers suite")
16+
}
Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
// Copyright 2023 D2iQ, Inc. All rights reserved.
2+
// SPDX-License-Identifier: Apache-2.0
3+
4+
package customimage
5+
6+
import (
7+
. "github.com/onsi/ginkgo/v2"
8+
"github.com/onsi/gomega"
9+
apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"
10+
runtimehooksv1 "sigs.k8s.io/cluster-api/exp/runtime/hooks/api/v1alpha1"
11+
12+
"github.com/d2iq-labs/cluster-api-runtime-extensions-nutanix/common/pkg/capi/clustertopology/handlers/mutation"
13+
"github.com/d2iq-labs/cluster-api-runtime-extensions-nutanix/common/pkg/testutils/capitest"
14+
"github.com/d2iq-labs/cluster-api-runtime-extensions-nutanix/common/pkg/testutils/capitest/request"
15+
dockerworkerconfig "github.com/d2iq-labs/cluster-api-runtime-extensions-nutanix/pkg/handlers/docker/workerconfig"
16+
"github.com/d2iq-labs/cluster-api-runtime-extensions-nutanix/pkg/handlers/generic/workerconfig"
17+
)
18+
19+
var _ = Describe("Docker CustomImage patches for workers", func() {
20+
patchGenerator := func() mutation.GeneratePatches {
21+
return mutation.NewMetaGeneratePatchesHandler("", NewWorkerPatch()).(mutation.GeneratePatches)
22+
}
23+
24+
testDefs := []capitest.PatchTestDef{
25+
{
26+
Name: "image unset for workers",
27+
Vars: []runtimehooksv1.Variable{
28+
capitest.VariableWithValue(
29+
"builtin",
30+
apiextensionsv1.JSON{
31+
Raw: []byte(
32+
`{"machineDeployment": {"class": "a-worker", "version": "v1.2.3"}}`,
33+
),
34+
},
35+
),
36+
},
37+
RequestItem: request.NewWorkerDockerMachineTemplateRequestItem("1234"),
38+
ExpectedPatchMatchers: []capitest.JSONPatchMatcher{{
39+
Operation: "add",
40+
Path: "/spec/template/spec/customImage",
41+
ValueMatcher: gomega.Equal("ghcr.io/mesosphere/kind-node:v1.2.3"),
42+
}},
43+
},
44+
{
45+
Name: "image set for workers",
46+
Vars: []runtimehooksv1.Variable{
47+
capitest.VariableWithValue(
48+
workerconfig.MetaVariableName,
49+
"a-specific-image",
50+
dockerworkerconfig.DockerVariableName,
51+
VariableName,
52+
),
53+
capitest.VariableWithValue(
54+
"builtin",
55+
apiextensionsv1.JSON{
56+
Raw: []byte(`{"machineDeployment": {"class": "a-worker"}}`),
57+
},
58+
),
59+
},
60+
RequestItem: request.NewWorkerDockerMachineTemplateRequestItem("1234"),
61+
ExpectedPatchMatchers: []capitest.JSONPatchMatcher{{
62+
Operation: "add",
63+
Path: "/spec/template/spec/customImage",
64+
ValueMatcher: gomega.Equal("a-specific-image"),
65+
}},
66+
},
67+
}
68+
69+
// create test node for each case
70+
for testIdx := range testDefs {
71+
tt := testDefs[testIdx]
72+
It(tt.Name, func() {
73+
capitest.AssertGeneratePatches(
74+
GinkgoT(),
75+
patchGenerator,
76+
&tt,
77+
)
78+
})
79+
}
80+
})

pkg/handlers/docker/mutation/customimage/tests/generate_patches.go

Lines changed: 0 additions & 122 deletions
This file was deleted.

pkg/handlers/docker/mutation/metapatch_handler_test.go

Lines changed: 0 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,6 @@ import (
99
"sigs.k8s.io/controller-runtime/pkg/manager"
1010

1111
"github.com/d2iq-labs/cluster-api-runtime-extensions-nutanix/common/pkg/capi/clustertopology/handlers/mutation"
12-
dockerclusterconfig "github.com/d2iq-labs/cluster-api-runtime-extensions-nutanix/pkg/handlers/docker/clusterconfig"
13-
"github.com/d2iq-labs/cluster-api-runtime-extensions-nutanix/pkg/handlers/docker/mutation/customimage"
14-
customimagetests "github.com/d2iq-labs/cluster-api-runtime-extensions-nutanix/pkg/handlers/docker/mutation/customimage/tests"
15-
dockerworkerconfig "github.com/d2iq-labs/cluster-api-runtime-extensions-nutanix/pkg/handlers/docker/workerconfig"
1612
"github.com/d2iq-labs/cluster-api-runtime-extensions-nutanix/pkg/handlers/generic/clusterconfig"
1713
auditpolicytests "github.com/d2iq-labs/cluster-api-runtime-extensions-nutanix/pkg/handlers/generic/mutation/auditpolicy/tests"
1814
"github.com/d2iq-labs/cluster-api-runtime-extensions-nutanix/pkg/handlers/generic/mutation/etcd"
@@ -27,7 +23,6 @@ import (
2723
globalimageregistrymirrortests "github.com/d2iq-labs/cluster-api-runtime-extensions-nutanix/pkg/handlers/generic/mutation/mirrors/tests"
2824
"github.com/d2iq-labs/cluster-api-runtime-extensions-nutanix/pkg/handlers/generic/mutation/users"
2925
userstests "github.com/d2iq-labs/cluster-api-runtime-extensions-nutanix/pkg/handlers/generic/mutation/users/tests"
30-
"github.com/d2iq-labs/cluster-api-runtime-extensions-nutanix/pkg/handlers/generic/workerconfig"
3126
)
3227

3328
func metaPatchGeneratorFunc(mgr manager.Manager) func() mutation.GeneratePatches {
@@ -36,34 +31,11 @@ func metaPatchGeneratorFunc(mgr manager.Manager) func() mutation.GeneratePatches
3631
}
3732
}
3833

39-
func workerPatchGeneratorFunc() func() mutation.GeneratePatches {
40-
return func() mutation.GeneratePatches {
41-
return MetaWorkerPatchHandler().(mutation.GeneratePatches)
42-
}
43-
}
44-
4534
func TestGeneratePatches(t *testing.T) {
4635
t.Parallel()
4736

4837
mgr := testEnv.Manager
4938

50-
customimagetests.TestControlPlaneGeneratePatches(
51-
t,
52-
metaPatchGeneratorFunc(mgr),
53-
clusterconfig.MetaVariableName,
54-
clusterconfig.MetaControlPlaneConfigName,
55-
dockerclusterconfig.DockerVariableName,
56-
customimage.VariableName,
57-
)
58-
59-
customimagetests.TestWorkerGeneratePatches(
60-
t,
61-
workerPatchGeneratorFunc(),
62-
workerconfig.MetaVariableName,
63-
dockerworkerconfig.DockerVariableName,
64-
customimage.VariableName,
65-
)
66-
6739
auditpolicytests.TestGeneratePatches(
6840
t,
6941
metaPatchGeneratorFunc(mgr),

0 commit comments

Comments
 (0)