Skip to content

Commit 5940fb6

Browse files
authored
Update main_test.go
1 parent ce8794a commit 5940fb6

File tree

1 file changed

+76
-0
lines changed

1 file changed

+76
-0
lines changed

internal/ingress/annotations/ratelimit/main_test.go

Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -154,6 +154,7 @@ func TestRateLimiting(t *testing.T) {
154154
data[parser.GetAnnotationWithPrefix(limitRateAfterAnnotation)] = "100"
155155
data[parser.GetAnnotationWithPrefix(limitRateAnnotation)] = "10"
156156
data[parser.GetAnnotationWithPrefix(limitRateBurstMultiplierAnnotation)] = "3"
157+
data[parser.GetAnnotationWithPrefix(limitRateDelayAnnotation)] = "5"
157158

158159
ing.SetAnnotations(data)
159160

@@ -171,18 +172,93 @@ func TestRateLimiting(t *testing.T) {
171172
if rateLimit.Connections.Burst != 5*3 {
172173
t.Errorf("expected %d in burst limit by ip but %v was returned", 5*3, rateLimit.Connections)
173174
}
175+
if rateLimit.Connections.SharedSize != 5 {
176+
t.Errorf("expected %d in sharedSize limit by ip but %v was returned", 5, rateLimit.Connections)
177+
}
174178
if rateLimit.RPS.Limit != 100 {
175179
t.Errorf("expected 100 in limit by rps but %v was returned", rateLimit.RPS)
176180
}
177181
if rateLimit.RPS.Burst != 100*3 {
178182
t.Errorf("expected %d in burst limit by rps but %v was returned", 100*3, rateLimit.RPS)
179183
}
184+
if rateLimit.RPS.Delay != 5 {
185+
t.Errorf("expected %d in delay limit by rps but %v was returned", 5, rateLimit.RPS)
186+
}
187+
if rateLimit.RPS.SharedSize != 5 {
188+
t.Errorf("expected %d in sharedSize limit by rps but %v was returned", 5, rateLimit.RPS)
189+
}
180190
if rateLimit.RPM.Limit != 10 {
181191
t.Errorf("expected 10 in limit by rpm but %v was returned", rateLimit.RPM)
182192
}
183193
if rateLimit.RPM.Burst != 10*3 {
184194
t.Errorf("expected %d in burst limit by rpm but %v was returned", 10*3, rateLimit.RPM)
185195
}
196+
if rateLimit.RPM.Delay != 5 {
197+
t.Errorf("expected %d in delay limit by rpm but %v was returned", 5, rateLimit.RPM)
198+
}
199+
if rateLimit.RPM.SharedSize != 5 {
200+
t.Errorf("expected %d in sharedSize limit by rpm but %v was returned", 5, rateLimit.RPM)
201+
}
202+
if rateLimit.LimitRateAfter != 100 {
203+
t.Errorf("expected 100 in limit by limitrateafter but %v was returned", rateLimit.LimitRateAfter)
204+
}
205+
if rateLimit.LimitRate != 10 {
206+
t.Errorf("expected 10 in limit by limitrate but %v was returned", rateLimit.LimitRate)
207+
}
208+
209+
data = map[string]string{}
210+
data[parser.GetAnnotationWithPrefix(limitRateConnectionsAnnotation)] = "5"
211+
data[parser.GetAnnotationWithPrefix(limitRateRPSAnnotation)] = "100"
212+
data[parser.GetAnnotationWithPrefix(limitRateRPMAnnotation)] = "10"
213+
data[parser.GetAnnotationWithPrefix(limitRateAfterAnnotation)] = "100"
214+
data[parser.GetAnnotationWithPrefix(limitRateAnnotation)] = "10"
215+
data[parser.GetAnnotationWithPrefix(limitRateBurstMultiplierAnnotation)] = "3"
216+
data[parser.GetAnnotationWithPrefix(limitRateNoBurstAnnotation)] = "true"
217+
data[parser.GetAnnotationWithPrefix(limitRateSharedSizeAnnotation)] = "1"
218+
219+
ing.SetAnnotations(data)
220+
221+
i, err = NewParser(mockBackend{}).Parse(ing)
222+
if err != nil {
223+
t.Errorf("unexpected error: %v", err)
224+
}
225+
rateLimit, ok = i.(*Config)
226+
if !ok {
227+
t.Errorf("expected a RateLimit type")
228+
}
229+
if rateLimit.Connections.Limit != 5 {
230+
t.Errorf("expected 5 in limit by ip but %v was returned", rateLimit.Connections)
231+
}
232+
if rateLimit.Connections.Burst != 0 {
233+
t.Errorf("expected %d in burst limit by ip but %v was returned", 0, rateLimit.Connections)
234+
}
235+
if rateLimit.Connections.SharedSize != 1 {
236+
t.Errorf("expected %d in sharedSize limit by ip but %v was returned", 1, rateLimit.Connections)
237+
}
238+
if rateLimit.RPS.Limit != 100 {
239+
t.Errorf("expected 100 in limit by rps but %v was returned", rateLimit.RPS)
240+
}
241+
if rateLimit.RPS.Burst != 0 {
242+
t.Errorf("expected %d in burst limit by rps but %v was returned", 0, rateLimit.RPS)
243+
}
244+
if rateLimit.RPS.Delay != -1 {
245+
t.Errorf("expected %d in delay limit by rps but %v was returned", -1, rateLimit.RPS)
246+
}
247+
if rateLimit.RPS.SharedSize != 1 {
248+
t.Errorf("expected %d in sharedSize limit by rps but %v was returned", 1, rateLimit.RPS)
249+
}
250+
if rateLimit.RPM.Limit != 10 {
251+
t.Errorf("expected 10 in limit by rpm but %v was returned", rateLimit.RPM)
252+
}
253+
if rateLimit.RPM.Burst != 0 {
254+
t.Errorf("expected %d in burst limit by rpm but %v was returned", 0, rateLimit.RPM)
255+
}
256+
if rateLimit.RPM.Delay != -1 {
257+
t.Errorf("expected %d in delay limit by rpm but %v was returned", -1, rateLimit.RPM)
258+
}
259+
if rateLimit.RPM.SharedSize != 1 {
260+
t.Errorf("expected %d in sharedSize limit by rps but %v was returned", 1, rateLimit.RPM)
261+
}
186262
if rateLimit.LimitRateAfter != 100 {
187263
t.Errorf("expected 100 in limit by limitrateafter but %v was returned", rateLimit.LimitRateAfter)
188264
}

0 commit comments

Comments
 (0)