1
1
// Copyright 2023 D2iQ, Inc. All rights reserved.
2
2
// SPDX-License-Identifier: Apache-2.0
3
3
4
- package tests
4
+ package prismcentralendpoint
5
5
6
6
import (
7
7
"testing"
8
8
9
+ . "github.com/onsi/ginkgo/v2"
9
10
"github.com/onsi/gomega"
10
11
corev1 "k8s.io/api/core/v1"
11
12
"k8s.io/utils/ptr"
@@ -15,30 +16,33 @@ import (
15
16
"github.com/d2iq-labs/cluster-api-runtime-extensions-nutanix/common/pkg/capi/clustertopology/handlers/mutation"
16
17
"github.com/d2iq-labs/cluster-api-runtime-extensions-nutanix/common/pkg/testutils/capitest"
17
18
"github.com/d2iq-labs/cluster-api-runtime-extensions-nutanix/common/pkg/testutils/capitest/request"
19
+ "github.com/d2iq-labs/cluster-api-runtime-extensions-nutanix/pkg/handlers/generic/clusterconfig"
20
+ nutanixclusterconfig "github.com/d2iq-labs/cluster-api-runtime-extensions-nutanix/pkg/handlers/nutanix/clusterconfig"
18
21
)
19
22
20
23
//
21
24
//nolint:lll // just a long string
22
25
const testCertBundle = "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUVjekNDQTF1Z0F3SUJBZ0lCQURBTkJna3Foa2lHOXcwQkFRUUZBRC4uQWtHQTFVRUJoTUNSMEl4CkV6QVJCZ05WQkFnVENsTnZiV1V0VTNSaGRHVXhGREFTQmdOVkJBb1RDMC4uMEVnVEhSa01UY3dOUVlEClZRUUxFeTVEYkdGemN5QXhJRkIxWW14cFl5QlFjbWx0WVhKNUlFTmxjbi4uWFJwYjI0Z1FYVjBhRzl5CmFYUjVNUlF3RWdZRFZRUURFd3RDWlhOMElFTkJJRXgwWkRBZUZ3MHdNRC4uVFV3TVRaYUZ3MHdNVEF5Ck1EUXhPVFV3TVRaYU1JR0hNUXN3Q1FZRFZRUUdFd0pIUWpFVE1CRUdBMS4uMjl0WlMxVGRHRjBaVEVVCk1CSUdBMVVFQ2hNTFFtVnpkQ0JEUVNCTWRHUXhOekExQmdOVkJBc1RMay4uREVnVUhWaWJHbGpJRkJ5CmFXMWhjbmtnUTJWeWRHbG1hV05oZEdsdmJpQkJkWFJvYjNKcGRIa3hGRC4uQU1UQzBKbGMzUWdRMEVnClRIUmtNSUlCSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQVE4QU1JSUJDZy4uVHoybXI3U1ppQU1mUXl1CnZCak05T2lKalJhelhCWjFCalA1Q0UvV20vUnI1MDBQUksrTGg5eDVlSi4uL0FOQkUwc1RLMFpzREdNCmFrMm0xZzdvcnVJM2RZM1ZIcUl4RlR6MFRhMWQrTkFqd25MZTRuT2I3Ly4uazA1U2hoQnJKR0JLS3hiCjhuMTA0by81cDhIQXNaUGR6YkZNSXlOakp6Qk0ybzV5NUExM3dpTGl0RS4uZnlZa1F6YXhDdzBBd3psCmtWSGlJeUN1YUY0d2o1NzFwU3prdjZzdis0SURNYlQvWHBDbzhMNndUYS4uc2grZXRMRDZGdFRqWWJiCnJ2WjhSUU0xdGxLZG9NSGcycXhyYUFWKytITkJZbU5XczBkdUVkalViSi4uWEk5VHRuUzRvMUNrajdQCk9mbGppUUlEQVFBQm80SG5NSUhrTUIwR0ExVWREZ1FXQkJROHVyTUNSTC4uNUFrSXA5TkpISnc1VENCCnRBWURWUjBqQklHc01JR3BnQlE4dXJNQ1JMWVlNSFVLVTVBa0lwOU5KSC4uYVNCaWpDQmh6RUxNQWtHCkExVUVCaE1DUjBJeEV6QVJCZ05WQkFnVENsTnZiV1V0VTNSaGRHVXhGRC4uQW9UQzBKbGMzUWdRMEVnClRIUmtNVGN3TlFZRFZRUUxFeTVEYkdGemN5QXhJRkIxWW14cFl5QlFjbS4uRU5sY25ScFptbGpZWFJwCmIyNGdRWFYwYUc5eWFYUjVNUlF3RWdZRFZRUURFd3RDWlhOMElFTkJJRS4uREFNQmdOVkhSTUVCVEFECkFRSC9NQTBHQ1NxR1NJYjNEUUVCQkFVQUE0SUJBUUMxdVlCY3NTbmN3QS4uRENzUWVyNzcyQzJ1Y3BYCnhRVUUvQzBwV1dtNmdEa3dkNUQwRFNNREpScVYvd2VvWjR3QzZCNzNmNS4uYkxoR1lIYVhKZVNENktyClhjb093TGRTYUdtSllzbExLWkIzWklERXAwd1lUR2hndGViNkpGaVR0bi4uc2YyeGRyWWZQQ2lJQjdnCkJNQVY3R3pkYzRWc3BTNmxqckFoYmlpYXdkQmlRbFFtc0JlRno5SmtGNC4uYjNsOEJvR04rcU1hNTZZCkl0OHVuYTJnWTRsMk8vL29uODhyNUlXSmxtMUwwb0E4ZTRmUjJ5ckJIWC4uYWRzR2VGS2t5TnJ3R2kvCjd2UU1mWGRHc1JyWE5HUkduWCt2V0RaMy96V0kwam9EdENrTm5xRXBWbi4uSG9YCi0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0="
23
26
24
- func TestGeneratePatches (
25
- t * testing.T ,
26
- generatorFunc func () mutation.GeneratePatches ,
27
- variableName string ,
28
- variablePath ... string ,
29
- ) {
30
- t .Helper ()
31
- capitest .ValidateGeneratePatches (
32
- t ,
33
- generatorFunc ,
34
- capitest.PatchTestDef {
27
+ func TestPrismCentralEndpointPatch (t * testing.T ) {
28
+ gomega .RegisterFailHandler (Fail )
29
+ RunSpecs (t , "Nutanix Prism Central Endpoint mutator suite" )
30
+ }
31
+
32
+ var _ = Describe ("Generate Nutanix Prism Central Endpoint patches" , func () {
33
+ patchGenerator := func () mutation.GeneratePatches {
34
+ return mutation .NewMetaGeneratePatchesHandler ("" , NewPatch ()).(mutation.GeneratePatches )
35
+ }
36
+
37
+ testDefs := []capitest.PatchTestDef {
38
+ {
35
39
Name : "unset variable" ,
36
40
},
37
- capitest. PatchTestDef {
41
+ {
38
42
Name : "all required fields set" ,
39
43
Vars : []runtimehooksv1.Variable {
40
44
capitest .VariableWithValue (
41
- variableName ,
45
+ clusterconfig . MetaVariableName ,
42
46
v1alpha1.NutanixPrismCentralEndpointSpec {
43
47
Host : "prism-central.nutanix.com" ,
44
48
Port : 9441 ,
@@ -47,7 +51,8 @@ func TestGeneratePatches(
47
51
Name : "credentials" ,
48
52
},
49
53
},
50
- variablePath ... ,
54
+ nutanixclusterconfig .NutanixVariableName ,
55
+ VariableName ,
51
56
),
52
57
},
53
58
RequestItem : request .NewNutanixClusterTemplateRequestItem ("" ),
@@ -68,11 +73,11 @@ func TestGeneratePatches(
68
73
},
69
74
},
70
75
},
71
- capitest. PatchTestDef {
76
+ {
72
77
Name : "additional trust bundle is set" ,
73
78
Vars : []runtimehooksv1.Variable {
74
79
capitest .VariableWithValue (
75
- variableName ,
80
+ clusterconfig . MetaVariableName ,
76
81
v1alpha1.NutanixPrismCentralEndpointSpec {
77
82
Host : "prism-central.nutanix.com" ,
78
83
Port : 9441 ,
@@ -82,7 +87,8 @@ func TestGeneratePatches(
82
87
},
83
88
AdditionalTrustBundle : ptr .To (testCertBundle ),
84
89
},
85
- variablePath ... ,
90
+ nutanixclusterconfig .NutanixVariableName ,
91
+ VariableName ,
86
92
),
87
93
},
88
94
RequestItem : request .NewNutanixClusterTemplateRequestItem ("" ),
@@ -104,5 +110,17 @@ func TestGeneratePatches(
104
110
},
105
111
},
106
112
},
107
- )
108
- }
113
+ }
114
+
115
+ // create test node for each case
116
+ for testIdx := range testDefs {
117
+ tt := testDefs [testIdx ]
118
+ It (tt .Name , func () {
119
+ capitest .AssertGeneratePatches (
120
+ GinkgoT (),
121
+ patchGenerator ,
122
+ & tt ,
123
+ )
124
+ })
125
+ }
126
+ })
0 commit comments