@@ -17,6 +17,8 @@ limitations under the License.
17
17
package resource
18
18
19
19
import (
20
+ "strings"
21
+
20
22
. "github.com/onsi/ginkgo/v2"
21
23
. "github.com/onsi/gomega"
22
24
)
@@ -32,6 +34,11 @@ var _ = Describe("Resource", func() {
32
34
)
33
35
34
36
var (
37
+ gvk GVK
38
+ res Resource
39
+ )
40
+
41
+ BeforeEach (func () {
35
42
gvk = GVK {
36
43
Group : group ,
37
44
Domain : domain ,
@@ -42,7 +49,7 @@ var _ = Describe("Resource", func() {
42
49
GVK : gvk ,
43
50
Plural : plural ,
44
51
}
45
- )
52
+ } )
46
53
47
54
Context ("Validate" , func () {
48
55
It ("should succeed for a valid Resource" , func () {
@@ -69,6 +76,13 @@ var _ = Describe("Resource", func() {
69
76
)
70
77
71
78
var (
79
+ resNoGroup Resource
80
+ resNoDomain Resource
81
+ resHyphenGroup Resource
82
+ resDotGroup Resource
83
+ )
84
+
85
+ BeforeEach (func () {
72
86
resNoGroup = Resource {
73
87
GVK : GVK {
74
88
// Empty group
@@ -101,24 +115,28 @@ var _ = Describe("Resource", func() {
101
115
Kind : kind ,
102
116
},
103
117
}
104
- )
118
+ } )
105
119
106
120
DescribeTable ("PackageName should return the correct string" ,
107
- func (res Resource , packageName string ) { Expect (res .PackageName ()).To (Equal (packageName )) },
108
- Entry ("fully qualified resource" , res , group ),
109
- Entry ("empty group name" , resNoGroup , safeDomain ),
110
- Entry ("empty domain" , resNoDomain , group ),
111
- Entry ("hyphen-containing group" , resHyphenGroup , safeGroup ),
112
- Entry ("dot-containing group" , resDotGroup , safeGroup ),
121
+ func (getRes func () Resource , expected string ) {
122
+ Expect (getRes ().PackageName ()).To (Equal (expected ))
123
+ },
124
+ Entry ("fully qualified resource" , func () Resource { return res }, group ),
125
+ Entry ("empty group name" , func () Resource { return resNoGroup }, safeDomain ),
126
+ Entry ("empty domain" , func () Resource { return resNoDomain }, group ),
127
+ Entry ("hyphen-containing group" , func () Resource { return resHyphenGroup }, safeGroup ),
128
+ Entry ("dot-containing group" , func () Resource { return resDotGroup }, safeGroup ),
113
129
)
114
130
115
131
DescribeTable ("ImportAlias" ,
116
- func (res Resource , importAlias string ) { Expect (res .ImportAlias ()).To (Equal (importAlias )) },
117
- Entry ("fully qualified resource" , res , groupVersion ),
118
- Entry ("empty group name" , resNoGroup , domainVersion ),
119
- Entry ("empty domain" , resNoDomain , groupVersion ),
120
- Entry ("hyphen-containing group" , resHyphenGroup , safeAlias ),
121
- Entry ("dot-containing group" , resDotGroup , safeAlias ),
132
+ func (getRes func () Resource , expected string ) {
133
+ Expect (getRes ().ImportAlias ()).To (Equal (expected ))
134
+ },
135
+ Entry ("fully qualified resource" , func () Resource { return res }, groupVersion ),
136
+ Entry ("empty group name" , func () Resource { return resNoGroup }, domainVersion ),
137
+ Entry ("empty domain" , func () Resource { return resNoDomain }, groupVersion ),
138
+ Entry ("hyphen-containing group" , func () Resource { return resHyphenGroup }, safeAlias ),
139
+ Entry ("dot-containing group" , func () Resource { return resDotGroup }, safeAlias ),
122
140
)
123
141
})
124
142
@@ -199,22 +217,24 @@ var _ = Describe("Resource", func() {
199
217
webhookVersion = "v1"
200
218
)
201
219
202
- res = Resource {
203
- GVK : gvk ,
204
- Plural : plural ,
205
- Path : path ,
206
- API : & API {
207
- CRDVersion : crdVersion ,
208
- Namespaced : true ,
209
- },
210
- Controller : true ,
211
- Webhooks : & Webhooks {
212
- WebhookVersion : webhookVersion ,
213
- Defaulting : true ,
214
- Validation : true ,
215
- Conversion : true ,
216
- },
217
- }
220
+ BeforeEach (func () {
221
+ res = Resource {
222
+ GVK : gvk ,
223
+ Plural : plural ,
224
+ Path : path ,
225
+ API : & API {
226
+ CRDVersion : crdVersion ,
227
+ Namespaced : true ,
228
+ },
229
+ Controller : true ,
230
+ Webhooks : & Webhooks {
231
+ WebhookVersion : webhookVersion ,
232
+ Defaulting : true ,
233
+ Validation : true ,
234
+ Conversion : true ,
235
+ },
236
+ }
237
+ })
218
238
219
239
It ("should return an exact copy" , func () {
220
240
other := res .Copy ()
@@ -423,16 +443,22 @@ var _ = Describe("Resource", func() {
423
443
})
424
444
425
445
Context ("Replacer" , func () {
426
- replacer := res .Replacer ()
446
+ var replacer * strings.Replacer
447
+
448
+ BeforeEach (func () {
449
+ replacer = res .Replacer ()
450
+ })
427
451
428
452
DescribeTable ("should replace the following strings" ,
429
- func (pattern , result string ) { Expect (replacer .Replace (pattern )).To (Equal (result )) },
430
- Entry ("no pattern" , "version" , "version" ),
431
- Entry ("pattern `%[group]`" , "%[group]" , res .Group ),
432
- Entry ("pattern `%[version]`" , "%[version]" , res .Version ),
433
- Entry ("pattern `%[kind]`" , "%[kind]" , "kind" ),
434
- Entry ("pattern `%[plural]`" , "%[plural]" , res .Plural ),
435
- Entry ("pattern `%[package-name]`" , "%[package-name]" , res .PackageName ()),
453
+ func (pattern string , expected func () string ) {
454
+ Expect (replacer .Replace (pattern )).To (Equal (expected ()))
455
+ },
456
+ Entry ("no pattern" , "version" , func () string { return "version" }),
457
+ Entry ("pattern `%[group]`" , "%[group]" , func () string { return res .Group }),
458
+ Entry ("pattern `%[version]`" , "%[version]" , func () string { return res .Version }),
459
+ Entry ("pattern `%[kind]`" , "%[kind]" , func () string { return "kind" }),
460
+ Entry ("pattern `%[plural]`" , "%[plural]" , func () string { return res .Plural }),
461
+ Entry ("pattern `%[package-name]`" , "%[package-name]" , func () string { return res .PackageName () }),
436
462
)
437
463
})
438
464
})
0 commit comments