Index: pkg/stack_trace/test/chain_test.dart |
diff --git a/pkg/stack_trace/test/chain_test.dart b/pkg/stack_trace/test/chain_test.dart |
index d9915ebf1f9767c21b1c8890bd95471d73730b3f..683544f1d26ad885fbd961db53d2cadf35148cd0 100644 |
--- a/pkg/stack_trace/test/chain_test.dart |
+++ b/pkg/stack_trace/test/chain_test.dart |
@@ -107,6 +107,29 @@ void main() { |
return completer.future; |
}); |
+ |
+ test('and relays them to the parent zone', () { |
+ var completer = new Completer(); |
+ |
+ runZoned(() { |
+ Chain.capture(() { |
+ inMicrotask(() => throw 'error'); |
+ }, onError: (error, chain) { |
+ expect(error, equals('error')); |
+ expect(chain.traces[1].frames, |
+ contains(frameMember(startsWith('inMicrotask')))); |
+ throw error; |
+ }); |
+ }, onError: (error, chain) { |
+ expect(error, equals('error')); |
+ expect(chain, new isInstanceOf<Chain>()); |
+ expect(chain.traces[1].frames, |
+ contains(frameMember(startsWith('inMicrotask')))); |
+ completer.complete(); |
+ }); |
+ |
+ return completer.future; |
+ }); |
}); |
test('capture() without onError passes exceptions to parent zone', () { |