OLD | NEW |
(Empty) | |
| 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. |
| 4 |
| 5 library shelf.log_middleware_test; |
| 6 |
| 7 import 'package:shelf/shelf.dart'; |
| 8 import 'package:test/test.dart'; |
| 9 |
| 10 import 'test_util.dart'; |
| 11 |
| 12 void main() { |
| 13 bool gotLog; |
| 14 |
| 15 setUp(() { |
| 16 gotLog = false; |
| 17 }); |
| 18 |
| 19 var logger = (msg, isError) { |
| 20 expect(gotLog, isFalse); |
| 21 gotLog = true; |
| 22 expect(isError, isFalse); |
| 23 expect(msg, contains('GET')); |
| 24 expect(msg, contains('[200]')); |
| 25 }; |
| 26 |
| 27 test('logs a request with a synchronous response', () { |
| 28 var handler = const Pipeline() |
| 29 .addMiddleware(logRequests(logger: logger)) |
| 30 .addHandler(syncHandler); |
| 31 |
| 32 return makeSimpleRequest(handler).then((response) { |
| 33 expect(gotLog, isTrue); |
| 34 }); |
| 35 }); |
| 36 |
| 37 test('logs a request with an asynchronous response', () { |
| 38 var handler = const Pipeline() |
| 39 .addMiddleware(logRequests(logger: logger)) |
| 40 .addHandler(asyncHandler); |
| 41 |
| 42 return makeSimpleRequest(handler).then((response) { |
| 43 expect(gotLog, isTrue); |
| 44 }); |
| 45 }); |
| 46 |
| 47 test('logs a request with an asynchronous error response', () { |
| 48 var handler = const Pipeline() |
| 49 .addMiddleware(logRequests(logger: (msg, isError) { |
| 50 expect(gotLog, isFalse); |
| 51 gotLog = true; |
| 52 expect(isError, isTrue); |
| 53 expect(msg, contains('\tGET\t/')); |
| 54 expect(msg, contains('testing logging throw')); |
| 55 })).addHandler((request) { |
| 56 throw 'testing logging throw'; |
| 57 }); |
| 58 |
| 59 expect(makeSimpleRequest(handler), throwsA('testing logging throw')); |
| 60 }); |
| 61 |
| 62 test("doesn't log a HijackException", () { |
| 63 var handler = const Pipeline() |
| 64 .addMiddleware(logRequests(logger: logger)) |
| 65 .addHandler((request) => throw const HijackException()); |
| 66 |
| 67 expect(makeSimpleRequest(handler).whenComplete(() { |
| 68 expect(gotLog, isFalse); |
| 69 }), throwsA(new isInstanceOf<HijackException>())); |
| 70 }); |
| 71 } |
OLD | NEW |