@@ -25,16 +25,12 @@ func TestClientSettingsPoliciesTargetRefKind(t *testing.T) {
25
25
}
26
26
27
27
func TestClientSettingsPoliciesTargetRefGroup (t * testing.T ) {
28
- // Test valid and invalid TargetRef Group
29
-
30
- allowedGroups := map [gatewayv1alpha2.LocalPolicyTargetReference ]bool {
31
- {
32
- Group : "gateway.networking.k8s.io" ,
33
- }: true ,
34
- }
35
-
36
- testValidTargetRefGroup (t , allowedGroups )
37
- testInvalidTargetRefGroup (t , allowedGroups )
28
+ // Test valid TargetRef Group
29
+ // Valid group is: "gateway.networking.k8s.io"
30
+ testValidTargetRefGroup (t )
31
+ // Invalid groups should return an error
32
+ // Examples of invalid groups: "invalid.networking.k8s.io", "discovery.k8s.io/v1"
33
+ testInvalidTargetRefGroup (t )
38
34
}
39
35
40
36
func testValidTargetRefKind (t * testing.T ) {
@@ -138,19 +134,22 @@ func testInvalidTargetRefKind(t *testing.T) {
138
134
}
139
135
}
140
136
141
- func testValidTargetRefGroup (t * testing.T , allowedGroups map [gatewayv1alpha2. LocalPolicyTargetReference ] bool ) {
137
+ func testValidTargetRefGroup (t * testing.T ) {
142
138
t .Helper ()
143
139
144
140
tests := []struct {
145
- name string
146
- wantErrors string
147
- targetRefGroup gatewayv1alpha2. LocalPolicyTargetReference
141
+ name string
142
+ wantErrors [] string
143
+ policySpec ngfAPIv1alpha1. ClientSettingsPolicySpec
148
144
}{
149
145
{
150
- name : "Validate TargetRef group is gateway.networking.k8s.io" ,
151
- wantErrors : "TargetRef Group must be gateway.networking.k8s.io" ,
152
- targetRefGroup : gatewayv1alpha2.LocalPolicyTargetReference {
153
- Group : "gateway.networking.k8s.io" ,
146
+ name : "Validate gateway.networking.k8s.io TargetRef Group is allowed" ,
147
+ wantErrors : []string {"TargetRef Group must be gateway.networking.k8s.io." },
148
+ policySpec : ngfAPIv1alpha1.ClientSettingsPolicySpec {
149
+ TargetRef : gatewayv1alpha2.LocalPolicyTargetReference {
150
+ Kind : "Gateway" ,
151
+ Group : "gateway.networking.k8s.io" ,
152
+ },
154
153
},
155
154
},
156
155
}
@@ -159,64 +158,62 @@ func testValidTargetRefGroup(t *testing.T, allowedGroups map[gatewayv1alpha2.Loc
159
158
t .Run (tt .name , func (t * testing.T ) {
160
159
// Create a ClientSettingsPolicy with the targetRef from the test case.
161
160
clientSettingsPolicy := & ngfAPIv1alpha1.ClientSettingsPolicy {
161
+ ObjectMeta : metav1.ObjectMeta {
162
+ Name : "test-policy" ,
163
+ Namespace : "default" ,
164
+ },
162
165
Spec : ngfAPIv1alpha1.ClientSettingsPolicySpec {
163
- TargetRef : tt .targetRefGroup ,
166
+ TargetRef : tt .policySpec . TargetRef ,
164
167
},
165
168
}
166
-
167
- if _ , ok := allowedGroups [clientSettingsPolicy .Spec .TargetRef ]; ! ok {
168
- gotError := "TargetRef Group must be gateway.networking.k8s.io"
169
-
170
- if tt .wantErrors == gotError {
171
- t .Errorf ("Test %s failed: got error %q, want %q" , tt .name , gotError , tt .wantErrors )
172
- }
173
- }
169
+ validateClientSettingsPolicy (t , clientSettingsPolicy , tt .wantErrors )
174
170
})
175
171
}
176
172
}
177
173
178
- func testInvalidTargetRefGroup (t * testing.T , allowedGroups map [gatewayv1alpha2. LocalPolicyTargetReference ] bool ) {
174
+ func testInvalidTargetRefGroup (t * testing.T ) {
179
175
t .Helper ()
180
176
181
177
tests := []struct {
182
- name string
183
- wantErrors string
184
- targetRefGroup gatewayv1alpha2. LocalPolicyTargetReference
178
+ name string
179
+ wantErrors [] string
180
+ policySpec ngfAPIv1alpha1. ClientSettingsPolicySpec
185
181
}{
186
182
{
187
- name : "Validate TargetRef group is gateway.networking.k8s.io" ,
188
- wantErrors : "TargetRef Group must be gateway.networking.k8s.io" ,
189
- targetRefGroup : gatewayv1alpha2.LocalPolicyTargetReference {
190
- Group : "invalid.networking.k8s.io" ,
183
+ name : "Validate invalid.networking.k8s.io TargetRef Group is not allowed" ,
184
+ wantErrors : []string {"TargetRef Group must be gateway.networking.k8s.io." },
185
+ policySpec : ngfAPIv1alpha1.ClientSettingsPolicySpec {
186
+ TargetRef : gatewayv1alpha2.LocalPolicyTargetReference {
187
+ Kind : "Gateway" ,
188
+ Group : "invalid.networking.k8s.io" ,
189
+ },
191
190
},
192
191
},
193
192
{
194
- name : "Validate TargetRef is of an allowed kind" ,
195
- wantErrors : "TargetRef Group must be gateway.networking.k8s.io" ,
196
- targetRefGroup : gatewayv1alpha2.LocalPolicyTargetReference {
197
- Group : "discovery.k8s.io/v1" ,
193
+ name : "Validate discovery.k8s.io/v1 TargetRef Group is not allowed" ,
194
+ wantErrors : []string {"TargetRef Group must be gateway.networking.k8s.io." },
195
+ policySpec : ngfAPIv1alpha1.ClientSettingsPolicySpec {
196
+ TargetRef : gatewayv1alpha2.LocalPolicyTargetReference {
197
+ Kind : "Gateway" ,
198
+ Group : "discovery.k8s.io/v1" ,
199
+ },
198
200
},
199
201
},
200
202
}
201
203
202
204
for _ , tt := range tests {
203
205
t .Run (tt .name , func (t * testing.T ) {
204
- t .Run (tt .name , func (t * testing.T ) {
205
- // Create a ClientSettingsPolicy with the targetRef from the test case.
206
- clientSettingsPolicy := & ngfAPIv1alpha1.ClientSettingsPolicy {
207
- Spec : ngfAPIv1alpha1.ClientSettingsPolicySpec {
208
- TargetRef : tt .targetRefGroup ,
209
- },
210
- }
211
-
212
- if _ , ok := allowedGroups [clientSettingsPolicy .Spec .TargetRef ]; ! ok {
213
- gotError := "TargetRef Group must be gateway.networking.k8s.io"
214
-
215
- if tt .wantErrors != gotError {
216
- t .Errorf ("Test %s failed: got error %q, want %q" , tt .name , gotError , tt .wantErrors )
217
- }
218
- }
219
- })
206
+ // Create a ClientSettingsPolicy with the targetRef from the test case.
207
+ clientSettingsPolicy := & ngfAPIv1alpha1.ClientSettingsPolicy {
208
+ ObjectMeta : metav1.ObjectMeta {
209
+ Name : "test-policy" ,
210
+ Namespace : "default" ,
211
+ },
212
+ Spec : ngfAPIv1alpha1.ClientSettingsPolicySpec {
213
+ TargetRef : tt .policySpec .TargetRef ,
214
+ },
215
+ }
216
+ validateClientSettingsPolicy (t , clientSettingsPolicy , tt .wantErrors )
220
217
})
221
218
}
222
219
}
0 commit comments