Tests done
This commit is contained in:
parent
e57de0bd04
commit
99c5933af3
3 changed files with 52 additions and 1 deletions
|
@ -74,5 +74,7 @@ Future<void> hello(RequestContext req, ResponseContext res) {
|
||||||
|
|
||||||
/// 404
|
/// 404
|
||||||
void throw404(RequestContext req, ResponseContext res) {
|
void throw404(RequestContext req, ResponseContext res) {
|
||||||
|
Zone.current
|
||||||
|
.handleUncaughtError('This 404 should not occur.', StackTrace.current);
|
||||||
throw AngelHttpException.notFound();
|
throw AngelHttpException.notFound();
|
||||||
}
|
}
|
||||||
|
|
|
@ -19,6 +19,7 @@ import 'parse_id_test.dart' as parse_id;
|
||||||
import 'precontained_test.dart' as precontained;
|
import 'precontained_test.dart' as precontained;
|
||||||
import 'primitives_test.dart' as primitives;
|
import 'primitives_test.dart' as primitives;
|
||||||
import 'repeat_request_test.dart' as repeat_request;
|
import 'repeat_request_test.dart' as repeat_request;
|
||||||
|
import 'req_shutdown_test.dart' as req_shutdown;
|
||||||
import 'routing_test.dart' as routing;
|
import 'routing_test.dart' as routing;
|
||||||
import 'serialize_test.dart' as serialize;
|
import 'serialize_test.dart' as serialize;
|
||||||
import 'server_test.dart' as server;
|
import 'server_test.dart' as server;
|
||||||
|
@ -49,7 +50,8 @@ main() {
|
||||||
group('parse_id', parse_id.main);
|
group('parse_id', parse_id.main);
|
||||||
group('precontained', precontained.main);
|
group('precontained', precontained.main);
|
||||||
group('primitives', primitives.main);
|
group('primitives', primitives.main);
|
||||||
group('repeat request', repeat_request.main);
|
group('repeat_request', repeat_request.main);
|
||||||
|
group('req_shutdown', req_shutdown.main);
|
||||||
group('routing', routing.main);
|
group('routing', routing.main);
|
||||||
group('serialize', serialize.main);
|
group('serialize', serialize.main);
|
||||||
group('server', server.main);
|
group('server', server.main);
|
||||||
|
|
47
test/req_shutdown_test.dart
Normal file
47
test/req_shutdown_test.dart
Normal file
|
@ -0,0 +1,47 @@
|
||||||
|
import 'dart:async';
|
||||||
|
import 'package:angel_framework/angel_framework.dart';
|
||||||
|
import 'package:angel_framework/http.dart';
|
||||||
|
import 'package:charcode/ascii.dart';
|
||||||
|
import 'package:http/io_client.dart' as http;
|
||||||
|
import 'package:logging/logging.dart';
|
||||||
|
import 'package:test/test.dart';
|
||||||
|
import 'pretty_log.dart';
|
||||||
|
|
||||||
|
void main() {
|
||||||
|
http.IOClient client;
|
||||||
|
AngelHttp driver;
|
||||||
|
Logger logger;
|
||||||
|
StringBuffer buf;
|
||||||
|
|
||||||
|
setUp(() async {
|
||||||
|
buf = StringBuffer();
|
||||||
|
client = http.IOClient();
|
||||||
|
hierarchicalLoggingEnabled = true;
|
||||||
|
|
||||||
|
logger = Logger.detached('req_shutdown')
|
||||||
|
..level = Level.ALL
|
||||||
|
..onRecord.listen(prettyLog);
|
||||||
|
|
||||||
|
var app = Angel(logger: logger);
|
||||||
|
|
||||||
|
app.fallback((req, res) {
|
||||||
|
req.shutdownHooks.add(() => buf.write('Hello, '));
|
||||||
|
req.shutdownHooks.add(() => buf.write('world!'));
|
||||||
|
});
|
||||||
|
|
||||||
|
driver = AngelHttp(app);
|
||||||
|
await driver.startServer();
|
||||||
|
});
|
||||||
|
|
||||||
|
tearDown(() {
|
||||||
|
logger.clearListeners();
|
||||||
|
client.close();
|
||||||
|
scheduleMicrotask(driver.close);
|
||||||
|
});
|
||||||
|
|
||||||
|
test('does not continue processing after streaming', () async {
|
||||||
|
await client.get(driver.uri);
|
||||||
|
await Future.delayed(Duration(milliseconds: 100));
|
||||||
|
expect(buf.toString(), 'Hello, world!');
|
||||||
|
});
|
||||||
|
}
|
Loading…
Reference in a new issue