@@ -17,6 +17,8 @@ limitations under the License.
1717package resource
1818
1919import (
20+ "strings"
21+
2022 . "github.com/onsi/ginkgo/v2"
2123 . "github.com/onsi/gomega"
2224)
@@ -32,6 +34,11 @@ var _ = Describe("Resource", func() {
3234 )
3335
3436 var (
37+ gvk GVK
38+ res Resource
39+ )
40+
41+ BeforeEach (func () {
3542 gvk = GVK {
3643 Group : group ,
3744 Domain : domain ,
@@ -42,7 +49,7 @@ var _ = Describe("Resource", func() {
4249 GVK : gvk ,
4350 Plural : plural ,
4451 }
45- )
52+ } )
4653
4754 Context ("Validate" , func () {
4855 It ("should succeed for a valid Resource" , func () {
@@ -69,6 +76,13 @@ var _ = Describe("Resource", func() {
6976 )
7077
7178 var (
79+ resNoGroup Resource
80+ resNoDomain Resource
81+ resHyphenGroup Resource
82+ resDotGroup Resource
83+ )
84+
85+ BeforeEach (func () {
7286 resNoGroup = Resource {
7387 GVK : GVK {
7488 // Empty group
@@ -101,24 +115,28 @@ var _ = Describe("Resource", func() {
101115 Kind : kind ,
102116 },
103117 }
104- )
118+ } )
105119
106120 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 ),
113129 )
114130
115131 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 ),
122140 )
123141 })
124142
@@ -199,22 +217,24 @@ var _ = Describe("Resource", func() {
199217 webhookVersion = "v1"
200218 )
201219
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+ })
218238
219239 It ("should return an exact copy" , func () {
220240 other := res .Copy ()
@@ -423,16 +443,22 @@ var _ = Describe("Resource", func() {
423443 })
424444
425445 Context ("Replacer" , func () {
426- replacer := res .Replacer ()
446+ var replacer * strings.Replacer
447+
448+ BeforeEach (func () {
449+ replacer = res .Replacer ()
450+ })
427451
428452 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 () }),
436462 )
437463 })
438464})
0 commit comments