@@ -10,7 +10,6 @@ import (
10
10
11
11
ngfAPI "github.com/nginx/nginx-gateway-fabric/apis/v1alpha1"
12
12
"github.com/nginx/nginx-gateway-fabric/internal/controller/state/validation/validationfakes"
13
- "github.com/nginx/nginx-gateway-fabric/internal/framework/helpers"
14
13
"github.com/nginx/nginx-gateway-fabric/internal/framework/kinds"
15
14
)
16
15
@@ -49,6 +48,24 @@ func TestValidateFilter(t *testing.T) {
49
48
expectErrCount : 0 ,
50
49
name : "valid HTTP request header modifiers filter" ,
51
50
},
51
+ {
52
+ filter : Filter {
53
+ RouteType : RouteTypeHTTP ,
54
+ FilterType : FilterRequestMirror ,
55
+ RequestMirror : & gatewayv1.HTTPRequestMirrorFilter {},
56
+ },
57
+ expectErrCount : 0 ,
58
+ name : "valid HTTP mirror filter" ,
59
+ },
60
+ {
61
+ filter : Filter {
62
+ RouteType : RouteTypeHTTP ,
63
+ FilterType : FilterRequestMirror ,
64
+ RequestMirror : nil ,
65
+ },
66
+ expectErrCount : 1 ,
67
+ name : "invalid HTTP mirror filter" ,
68
+ },
52
69
{
53
70
filter : Filter {
54
71
RouteType : RouteTypeHTTP ,
@@ -79,6 +96,15 @@ func TestValidateFilter(t *testing.T) {
79
96
expectErrCount : 1 ,
80
97
name : "unsupported HTTP filter type" ,
81
98
},
99
+ {
100
+ filter : Filter {
101
+ RouteType : RouteTypeGRPC ,
102
+ FilterType : FilterRequestMirror ,
103
+ RequestMirror : & gatewayv1.HTTPRequestMirrorFilter {},
104
+ },
105
+ expectErrCount : 0 ,
106
+ name : "valid GRPC mirror filter" ,
107
+ },
82
108
{
83
109
filter : Filter {
84
110
RouteType : RouteTypeGRPC ,
@@ -133,138 +159,6 @@ func TestValidateFilter(t *testing.T) {
133
159
}
134
160
}
135
161
136
- func TestValidateFilterMirror (t * testing.T ) {
137
- t .Parallel ()
138
-
139
- tests := []struct {
140
- filter Filter
141
- name string
142
- expectErrCount int
143
- }{
144
- {
145
- filter : Filter {
146
- RouteType : RouteTypeHTTP ,
147
- FilterType : FilterRequestMirror ,
148
- RequestMirror : & gatewayv1.HTTPRequestMirrorFilter {},
149
- },
150
- expectErrCount : 0 ,
151
- name : "valid HTTP mirror filter" ,
152
- },
153
- {
154
- filter : Filter {
155
- RouteType : RouteTypeHTTP ,
156
- FilterType : FilterRequestMirror ,
157
- RequestMirror : & gatewayv1.HTTPRequestMirrorFilter {
158
- Percent : helpers .GetPointer (int32 (50 )),
159
- },
160
- },
161
- expectErrCount : 0 ,
162
- name : "valid HTTP mirror filter with percentage set" ,
163
- },
164
- {
165
- filter : Filter {
166
- RouteType : RouteTypeHTTP ,
167
- FilterType : FilterRequestMirror ,
168
- RequestMirror : & gatewayv1.HTTPRequestMirrorFilter {
169
- Fraction : & gatewayv1.Fraction {
170
- Numerator : 1 ,
171
- Denominator : helpers .GetPointer (int32 (2 )),
172
- },
173
- },
174
- },
175
- expectErrCount : 0 ,
176
- name : "valid HTTP mirror filter with fraction set" ,
177
- },
178
- {
179
- filter : Filter {
180
- RouteType : RouteTypeHTTP ,
181
- FilterType : FilterRequestMirror ,
182
- RequestMirror : nil ,
183
- },
184
- expectErrCount : 1 ,
185
- name : "invalid nil HTTP mirror filter" ,
186
- },
187
- {
188
- filter : Filter {
189
- RouteType : RouteTypeHTTP ,
190
- FilterType : FilterRequestMirror ,
191
- RequestMirror : & gatewayv1.HTTPRequestMirrorFilter {
192
- Percent : helpers .GetPointer (int32 (5 )),
193
- Fraction : & gatewayv1.Fraction {
194
- Numerator : 1 ,
195
- Denominator : helpers .GetPointer (int32 (3 )),
196
- },
197
- },
198
- },
199
- expectErrCount : 1 ,
200
- name : "invalid HTTP mirror filter both percent and fraction set" ,
201
- },
202
- {
203
- filter : Filter {
204
- RouteType : RouteTypeHTTP ,
205
- FilterType : FilterRequestMirror ,
206
- RequestMirror : & gatewayv1.HTTPRequestMirrorFilter {
207
- Fraction : & gatewayv1.Fraction {
208
- Numerator : 1 ,
209
- Denominator : helpers .GetPointer (int32 (0 )),
210
- },
211
- },
212
- },
213
- expectErrCount : 1 ,
214
- name : "invalid HTTP mirror filter, fraction denominator value must be greater than 0" ,
215
- },
216
- {
217
- filter : Filter {
218
- RouteType : RouteTypeHTTP ,
219
- FilterType : FilterRequestMirror ,
220
- RequestMirror : & gatewayv1.HTTPRequestMirrorFilter {
221
- Fraction : & gatewayv1.Fraction {
222
- Numerator : - 1 ,
223
- Denominator : helpers .GetPointer (int32 (2 )),
224
- },
225
- },
226
- },
227
- expectErrCount : 1 ,
228
- name : "invalid HTTP mirror filter, fraction numerator value must be greater than or equal to 0" ,
229
- },
230
- {
231
- filter : Filter {
232
- RouteType : RouteTypeHTTP ,
233
- FilterType : FilterRequestMirror ,
234
- RequestMirror : & gatewayv1.HTTPRequestMirrorFilter {
235
- Fraction : & gatewayv1.Fraction {
236
- Numerator : 5 ,
237
- Denominator : helpers .GetPointer (int32 (2 )),
238
- },
239
- },
240
- },
241
- expectErrCount : 1 ,
242
- name : "invalid HTTP mirror filter, fraction numerator value must be less than denominator" ,
243
- },
244
- {
245
- filter : Filter {
246
- RouteType : RouteTypeGRPC ,
247
- FilterType : FilterRequestMirror ,
248
- RequestMirror : & gatewayv1.HTTPRequestMirrorFilter {},
249
- },
250
- expectErrCount : 0 ,
251
- name : "valid GRPC mirror filter" ,
252
- },
253
- }
254
-
255
- filterPath := field .NewPath ("test" )
256
-
257
- for _ , test := range tests {
258
- t .Run (test .name , func (t * testing.T ) {
259
- t .Parallel ()
260
-
261
- g := NewWithT (t )
262
- allErrs := validateFilter (& validationfakes.FakeHTTPFieldsValidator {}, test .filter , filterPath )
263
- g .Expect (allErrs ).To (HaveLen (test .expectErrCount ))
264
- })
265
- }
266
- }
267
-
268
162
func TestValidateFilterResponseHeaderModifier (t * testing.T ) {
269
163
t .Parallel ()
270
164
0 commit comments