33 lines
834 B
Dart
33 lines
834 B
Dart
import 'package:angel_framework/angel_framework.dart';
|
|
import 'package:angel_security/angel_security.dart';
|
|
import 'package:angel_test/angel_test.dart';
|
|
import 'package:test/test.dart';
|
|
|
|
main() {
|
|
Angel app;
|
|
TestClient client;
|
|
|
|
setUp(() async {
|
|
app = new Angel();
|
|
|
|
app
|
|
.chain(throttleRequests(1, new Duration(hours: 1)))
|
|
.get('/once-per-hour', 'OK');
|
|
|
|
client = await connectTo(app);
|
|
});
|
|
|
|
tearDown(() => client.close());
|
|
|
|
test('enforce limit', () async {
|
|
// First request within the hour is fine
|
|
var response = await client.get('/once-per-hour');
|
|
print(response.body);
|
|
expect(response.body, contains('OK'));
|
|
|
|
// Second request within an hour? No no no!
|
|
response = await client.get('/once-per-hour');
|
|
print(response.body);
|
|
expect(response, hasStatus(429));
|
|
});
|
|
}
|