@@ -14,8 +14,8 @@ func TestReferenceGrantResolver(t *testing.T) {
14
14
gwNs := "gw-ns"
15
15
secretNsName := types.NamespacedName {Namespace : "test" , Name : "certificate" }
16
16
17
- getNormalRefGrant := func () * v1beta1.ReferenceGrant {
18
- return & v1beta1. ReferenceGrant {
17
+ refGrants := map [types. NamespacedName ] * v1beta1.ReferenceGrant {
18
+ { Namespace : "test" , Name : "valid" }: {
19
19
Spec : v1beta1.ReferenceGrantSpec {
20
20
From : []v1beta1.ReferenceGrantFrom {
21
21
{
@@ -27,110 +27,126 @@ func TestReferenceGrantResolver(t *testing.T) {
27
27
To : []v1beta1.ReferenceGrantTo {
28
28
{
29
29
Kind : "Secret" ,
30
- Name : helpers .GetPointer (v1beta1 .ObjectName (secretNsName .Name )),
30
+ Name : helpers .GetPointer (v1beta1 .ObjectName ("wrong-name1" )),
31
+ },
32
+ {
33
+ Kind : "Secret" ,
34
+ Name : helpers .GetPointer (v1beta1 .ObjectName ("wrong-name2" )),
35
+ },
36
+ {
37
+ Kind : "Secret" ,
38
+ Name : helpers .GetPointer (v1beta1 .ObjectName (secretNsName .Name )), // matches
31
39
},
32
40
},
33
41
},
34
- }
35
- }
36
-
37
- createModifiedRefGrant := func (mod func (rg * v1beta1.ReferenceGrant )) * v1beta1.ReferenceGrant {
38
- rg := getNormalRefGrant ()
39
- mod (rg )
40
- return rg
41
- }
42
-
43
- refGrants := map [types.NamespacedName ]* v1beta1.ReferenceGrant {
44
- {Namespace : "test" , Name : "valid" }: createModifiedRefGrant (func (rg * v1beta1.ReferenceGrant ) {
45
- rg .Spec .To = []v1beta1.ReferenceGrantTo {
46
- {
47
- Kind : "Secret" ,
48
- Name : helpers .GetPointer (v1beta1 .ObjectName ("wrong-name1" )),
49
- },
50
- {
51
- Kind : "Secret" ,
52
- Name : helpers .GetPointer (v1beta1 .ObjectName ("wrong-name2" )),
53
- },
54
- {
55
- Kind : "Secret" ,
56
- Name : helpers .GetPointer (v1beta1 .ObjectName (secretNsName .Name )), // matches
42
+ },
43
+ {Namespace : "explicit-core-group" , Name : "valid" }: {
44
+ Spec : v1beta1.ReferenceGrantSpec {
45
+ From : []v1beta1.ReferenceGrantFrom {
46
+ {
47
+ Group : v1beta1 .GroupName ,
48
+ Kind : "Gateway" ,
49
+ Namespace : v1beta1 .Namespace (gwNs ),
50
+ },
57
51
},
58
- }
59
- }),
60
- {Namespace : "explicit-core-group" , Name : "valid" }: createModifiedRefGrant (func (rg * v1beta1.ReferenceGrant ) {
61
- rg .Spec .To [0 ].Group = "core"
62
- }),
63
- {Namespace : "all-in-namespace" , Name : "valid" }: createModifiedRefGrant (func (rg * v1beta1.ReferenceGrant ) {
64
- rg .Spec .To [0 ].Name = nil
65
- rg .Spec .From = []v1beta1.ReferenceGrantFrom {
66
- {
67
- Group : v1beta1 .GroupName ,
68
- Kind : "Gateway" ,
69
- Namespace : "wrong-ns1" ,
52
+ To : []v1beta1.ReferenceGrantTo {
53
+ {
54
+ Group : "core" ,
55
+ Kind : "Secret" ,
56
+ Name : helpers .GetPointer (v1beta1 .ObjectName (secretNsName .Name )),
57
+ },
70
58
},
71
- {
72
- Group : v1beta1 .GroupName ,
73
- Kind : "Gateway" ,
74
- Namespace : "wrong-ns2" ,
59
+ },
60
+ },
61
+ {Namespace : "all-in-namespace" , Name : "valid" }: {
62
+ Spec : v1beta1.ReferenceGrantSpec {
63
+ To : []v1beta1.ReferenceGrantTo {
64
+ {
65
+ Kind : "Secret" ,
66
+ },
75
67
},
76
- {
77
- Group : v1beta1 .GroupName ,
78
- Kind : "Gateway" ,
79
- Namespace : v1beta1 .Namespace (gwNs ), // matches
68
+ From : []v1beta1.ReferenceGrantFrom {
69
+ {
70
+ Group : v1beta1 .GroupName ,
71
+ Kind : "Gateway" ,
72
+ Namespace : "wrong-ns1" ,
73
+ },
74
+ {
75
+ Group : v1beta1 .GroupName ,
76
+ Kind : "Gateway" ,
77
+ Namespace : "wrong-ns2" ,
78
+ },
79
+ {
80
+ Group : v1beta1 .GroupName ,
81
+ Kind : "Gateway" ,
82
+ Namespace : v1beta1 .Namespace (gwNs ),
83
+ },
80
84
},
81
- }
82
- }) ,
85
+ },
86
+ },
83
87
}
84
88
89
+ normalTo := toResource {kind : "Secret" , name : secretNsName .Name , namespace : secretNsName .Namespace }
90
+ normalFrom := fromResource {group : v1beta1 .GroupName , kind : "Gateway" , namespace : gwNs }
91
+
85
92
tests := []struct {
86
- overrideTo * toResource
87
- overrideFrom * fromResource
88
- msg string
89
- allowed bool
93
+ to toResource
94
+ from fromResource
95
+ msg string
96
+ allowed bool
90
97
}{
91
98
{
92
- msg : "wrong 'to' kind" ,
93
- overrideTo : & toResource {kind : "WrongKind" , name : secretNsName .Name , namespace : secretNsName .Namespace },
94
- allowed : false ,
99
+ msg : "wrong 'to' kind" ,
100
+ to : toResource {kind : "WrongKind" , name : secretNsName .Name , namespace : secretNsName .Namespace },
101
+ from : normalFrom ,
102
+ allowed : false ,
95
103
},
96
104
{
97
105
msg : "wrong 'to' group" ,
98
- overrideTo : & toResource {
106
+ to : toResource {
99
107
group : "wrong.group" ,
100
108
kind : "Secret" ,
101
109
name : secretNsName .Name ,
102
110
namespace : secretNsName .Namespace ,
103
111
},
112
+ from : normalFrom ,
104
113
allowed : false ,
105
114
},
106
115
{
107
- msg : "wrong 'to' name" ,
108
- overrideTo : & toResource {kind : "Secret" , name : "wrong-name" , namespace : secretNsName .Namespace },
109
- allowed : false ,
116
+ msg : "wrong 'to' name" ,
117
+ to : toResource {kind : "Secret" , name : "wrong-name" , namespace : secretNsName .Namespace },
118
+ from : normalFrom ,
119
+ allowed : false ,
110
120
},
111
121
{
112
- msg : "wrong 'from' kind" ,
113
- overrideFrom : & fromResource {group : v1beta1 .GroupName , kind : "WrongKind" , namespace : gwNs },
114
- allowed : false ,
122
+ msg : "wrong 'from' kind" ,
123
+ to : normalTo ,
124
+ from : fromResource {group : v1beta1 .GroupName , kind : "WrongKind" , namespace : gwNs },
125
+ allowed : false ,
115
126
},
116
127
{
117
- msg : "wrong 'from' group" ,
118
- overrideFrom : & fromResource {group : "wrong.group" , kind : "Gateway" , namespace : gwNs },
119
- allowed : false ,
128
+ msg : "wrong 'from' group" ,
129
+ to : normalTo ,
130
+ from : fromResource {group : "wrong.group" , kind : "Gateway" , namespace : gwNs },
131
+ allowed : false ,
120
132
},
121
133
{
122
- msg : "wrong 'from' namespace" ,
123
- overrideFrom : & fromResource {group : v1beta1 .GroupName , kind : "Gateway" , namespace : "wrong-ns" },
124
- allowed : false ,
134
+ msg : "wrong 'from' namespace" ,
135
+ to : normalTo ,
136
+ from : fromResource {group : v1beta1 .GroupName , kind : "Gateway" , namespace : "wrong-ns" },
137
+ allowed : false ,
125
138
},
126
139
{
127
140
msg : "allowed; matches specific reference grant" ,
141
+ to : normalTo ,
142
+ from : normalFrom ,
128
143
allowed : true ,
129
144
},
130
145
{
131
- msg : "allowed; matches all-in-namespace reference grant" ,
132
- overrideTo : & toResource {kind : "Secret" , name : secretNsName .Name , namespace : "all-in-namespace" },
133
- allowed : true ,
146
+ msg : "allowed; matches all-in-namespace reference grant" ,
147
+ to : toResource {kind : "Secret" , name : secretNsName .Name , namespace : "all-in-namespace" },
148
+ from : normalFrom ,
149
+ allowed : true ,
134
150
},
135
151
}
136
152
@@ -140,17 +156,7 @@ func TestReferenceGrantResolver(t *testing.T) {
140
156
t .Run (test .msg , func (t * testing.T ) {
141
157
g := NewGomegaWithT (t )
142
158
143
- to := toResource {kind : "Secret" , name : secretNsName .Name , namespace : secretNsName .Namespace }
144
- if test .overrideTo != nil {
145
- to = * test .overrideTo
146
- }
147
-
148
- from := fromResource {group : v1beta1 .GroupName , kind : "Gateway" , namespace : gwNs }
149
- if test .overrideFrom != nil {
150
- from = * test .overrideFrom
151
- }
152
-
153
- g .Expect (resolver .refAllowed (to , from )).To (Equal (test .allowed ))
159
+ g .Expect (resolver .refAllowed (test .to , test .from )).To (Equal (test .allowed ))
154
160
})
155
161
}
156
162
}
0 commit comments