@@ -23,61 +23,68 @@ import (
23
23
"sigs.k8s.io/kubebuilder/v4/pkg/config"
24
24
)
25
25
26
- var (
27
- p1 = mockPlugin {
28
- name : "go.kubebuilder.io" ,
29
- version : Version {Number : 2 },
30
- supportedProjectVersions : []config.Version {{Number : 2 }, {Number : 3 }},
31
- }
32
- p2 = mockPlugin {
33
- name : "go.kubebuilder.io" ,
34
- version : Version {Number : 3 },
35
- supportedProjectVersions : []config.Version {{Number : 3 }},
36
- }
37
- p3 = mockPlugin {
38
- name : "example.kubebuilder.io" ,
39
- version : Version {Number : 1 },
40
- supportedProjectVersions : []config.Version {{Number : 2 }},
41
- }
42
- p4 = mockPlugin {
43
- name : "test.kubebuilder.io" ,
44
- version : Version {Number : 1 },
45
- supportedProjectVersions : []config.Version {{Number : 3 }},
46
- }
47
- p5 = mockPlugin {
48
- name : "go.test.domain" ,
49
- version : Version {Number : 2 },
50
- supportedProjectVersions : []config.Version {{Number : 2 }},
51
- }
26
+ var _ = Describe ("FilterPlugins" , func () {
27
+ var (
28
+ p1 mockPlugin
29
+ p2 mockPlugin
30
+ p3 mockPlugin
31
+ p4 mockPlugin
32
+ p5 mockPlugin
33
+ allPlugins []Plugin
34
+ )
52
35
53
- allPlugins = []Plugin {p1 , p2 , p3 , p4 , p5 }
54
- )
36
+ BeforeEach (func () {
37
+ p1 = mockPlugin {
38
+ name : "go.kubebuilder.io" ,
39
+ version : Version {Number : 2 },
40
+ supportedProjectVersions : []config.Version {{Number : 2 }, {Number : 3 }},
41
+ }
42
+ p2 = mockPlugin {
43
+ name : "go.kubebuilder.io" ,
44
+ version : Version {Number : 3 },
45
+ supportedProjectVersions : []config.Version {{Number : 3 }},
46
+ }
47
+ p3 = mockPlugin {
48
+ name : "example.kubebuilder.io" ,
49
+ version : Version {Number : 1 },
50
+ supportedProjectVersions : []config.Version {{Number : 2 }},
51
+ }
52
+ p4 = mockPlugin {
53
+ name : "test.kubebuilder.io" ,
54
+ version : Version {Number : 1 },
55
+ supportedProjectVersions : []config.Version {{Number : 3 }},
56
+ }
57
+ p5 = mockPlugin {
58
+ name : "go.test.domain" ,
59
+ version : Version {Number : 2 },
60
+ supportedProjectVersions : []config.Version {{Number : 2 }},
61
+ }
55
62
56
- var _ = Describe ("FilterPluginsByKey" , func () {
57
- DescribeTable ("should filter" ,
58
- func (key string , plugins []Plugin ) {
63
+ allPlugins = []Plugin {p1 , p2 , p3 , p4 , p5 }
64
+ })
65
+
66
+ DescribeTable ("should filter by key" ,
67
+ func (key string , expectedPlugins func () []Plugin ) {
59
68
filtered , err := FilterPluginsByKey (allPlugins , key )
60
69
Expect (err ).NotTo (HaveOccurred ())
61
- Expect (filtered ).To (Equal (plugins ))
70
+ Expect (filtered ).To (Equal (expectedPlugins () ))
62
71
},
63
- Entry ("go plugins" , "go" , []Plugin { p1 , p2 , p5 }),
64
- Entry ("go plugins (kubebuilder domain)" , "go.kubebuilder" , []Plugin { p1 , p2 }),
65
- Entry ("go v2 plugins" , "go/v2" , []Plugin { p1 , p5 }),
66
- Entry ("go v2 plugins (kubebuilder domain)" , "go.kubebuilder/v2" , []Plugin { p1 }),
72
+ Entry ("go plugins" , "go" , func () []Plugin { return [] Plugin { p1 , p2 , p5 } }),
73
+ Entry ("go plugins (kubebuilder domain)" , "go.kubebuilder" , func () []Plugin { return [] Plugin { p1 , p2 } }),
74
+ Entry ("go v2 plugins" , "go/v2" , func () []Plugin { return [] Plugin { p1 , p5 } }),
75
+ Entry ("go v2 plugins (kubebuilder domain)" , "go.kubebuilder/v2" , func () []Plugin { return [] Plugin { p1 } }),
67
76
)
68
77
69
78
It ("should fail for invalid versions" , func () {
70
79
_ , err := FilterPluginsByKey (allPlugins , "go/a" )
71
80
Expect (err ).To (HaveOccurred ())
72
81
})
73
- })
74
82
75
- var _ = Describe ("FilterPluginsByKey" , func () {
76
- DescribeTable ("should filter" ,
77
- func (projectVersion config.Version , plugins []Plugin ) {
78
- Expect (FilterPluginsByProjectVersion (allPlugins , projectVersion )).To (Equal (plugins ))
83
+ DescribeTable ("should filter by project version" ,
84
+ func (projectVersion config.Version , expectedPlugins func () []Plugin ) {
85
+ Expect (FilterPluginsByProjectVersion (allPlugins , projectVersion )).To (Equal (expectedPlugins ()))
79
86
},
80
- Entry ("project v2 plugins" , config.Version {Number : 2 }, []Plugin { p1 , p3 , p5 }),
81
- Entry ("project v3 plugins" , config.Version {Number : 3 }, []Plugin { p1 , p2 , p4 }),
87
+ Entry ("project v2 plugins" , config.Version {Number : 2 }, func () []Plugin { return [] Plugin { p1 , p3 , p5 } }),
88
+ Entry ("project v3 plugins" , config.Version {Number : 3 }, func () []Plugin { return [] Plugin { p1 , p2 , p4 } }),
82
89
)
83
90
})
0 commit comments