@@ -119,46 +119,88 @@ func TestRateLimiter(t *testing.T) {
119
119
}
120
120
121
121
func TestRateLimiterWithConfig (t * testing.T ) {
122
- var inMemoryStore = new (RateLimiterMemoryStore )
123
- inMemoryStore .rate = 1
124
- inMemoryStore .burst = 3
125
-
126
- e := echo .New ()
122
+ {
123
+ var inMemoryStore = new (RateLimiterMemoryStore )
124
+ inMemoryStore .rate = 1
125
+ inMemoryStore .burst = 3
127
126
128
- handler := func (c echo.Context ) error {
129
- return c .String (http .StatusOK , "test" )
127
+ e := echo .New ()
128
+
129
+ handler := func (c echo.Context ) error {
130
+ return c .String (http .StatusOK , "test" )
131
+ }
132
+
133
+ testCases := []struct {
134
+ id string
135
+ code int
136
+ }{
137
+ {"127.0.0.1" , 200 },
138
+ {"127.0.0.1" , 200 },
139
+ {"127.0.0.1" , 200 },
140
+ {"127.0.0.1" , 429 },
141
+ {"127.0.0.1" , 429 },
142
+ {"127.0.0.1" , 429 },
143
+ {"127.0.0.1" , 429 },
144
+ }
145
+
146
+ for _ , tc := range testCases {
147
+ req := httptest .NewRequest (http .MethodGet , "/" , nil )
148
+ req .Header .Add (echo .HeaderXRealIP , tc .id )
149
+
150
+ rec := httptest .NewRecorder ()
151
+
152
+ c := e .NewContext (req , rec )
153
+ mw := RateLimiterWithConfig (RateLimiterConfig {
154
+ SourceFunc : func (c echo.Context ) string {
155
+ return c .RealIP ()
156
+ },
157
+ Store : inMemoryStore ,
158
+ })
159
+
160
+ _ = mw (handler )(c )
161
+
162
+ assert .Equal (t , tc .code , rec .Code )
163
+ }
130
164
}
165
+ {
166
+ var inMemoryStore = new (RateLimiterMemoryStore )
167
+ inMemoryStore .rate = 1
168
+ inMemoryStore .burst = 3
131
169
132
- testCases := []struct {
133
- id string
134
- code int
135
- }{
136
- {"127.0.0.1" , 200 },
137
- {"127.0.0.1" , 200 },
138
- {"127.0.0.1" , 200 },
139
- {"127.0.0.1" , 429 },
140
- {"127.0.0.1" , 429 },
141
- {"127.0.0.1" , 429 },
142
- {"127.0.0.1" , 429 },
143
- }
170
+ e := echo .New ()
144
171
145
- for _ , tc := range testCases {
146
- req := httptest . NewRequest (http .MethodGet , "/" , nil )
147
- req . Header . Add ( echo . HeaderXRealIP , tc . id )
172
+ handler := func ( c echo. Context ) error {
173
+ return c . String (http .StatusOK , "test" )
174
+ }
148
175
149
- rec := httptest .NewRecorder ()
176
+ testCases := []struct {
177
+ id string
178
+ code int
179
+ }{
180
+ {"127.0.0.1" , 200 },
181
+ {"127.0.0.1" , 200 },
182
+ {"127.0.0.1" , 200 },
183
+ {"127.0.0.1" , 429 },
184
+ {"127.0.0.1" , 429 },
185
+ {"127.0.0.1" , 429 },
186
+ {"127.0.0.1" , 429 },
187
+ }
150
188
151
- c := e .NewContext (req , rec )
152
- mw := RateLimiterWithConfig (RateLimiterConfig {
153
- SourceFunc : func (c echo.Context ) string {
154
- return c .RealIP ()
155
- },
156
- Store : inMemoryStore ,
157
- })
189
+ for _ , tc := range testCases {
190
+ req := httptest .NewRequest (http .MethodGet , "/" , nil )
191
+ req .Header .Add (echo .HeaderXRealIP , tc .id )
158
192
159
- _ = mw ( handler )( c )
193
+ rec := httptest . NewRecorder ( )
160
194
161
- assert .Equal (t , tc .code , rec .Code )
195
+ c := e .NewContext (req , rec )
196
+ mw := RateLimiterWithConfig (RateLimiterConfig {
197
+ Store : inMemoryStore ,
198
+ })
199
+
200
+ _ = mw (handler )(c )
201
+
202
+ assert .Equal (t , tc .code , rec .Code )
203
+ }
162
204
}
163
205
}
164
206
0 commit comments