Index: test/backend/declarer_test.dart |
diff --git a/test/backend/declarer_test.dart b/test/backend/declarer_test.dart |
index 4873b6151c9e23a7e031a981f6b3ed8abb50ebf1..381536724c53ad75c2eb169c5178d50df49a0e90 100644 |
--- a/test/backend/declarer_test.dart |
+++ b/test/backend/declarer_test.dart |
@@ -389,6 +389,26 @@ void main() { |
expect(outerTearDownRun, isTrue); |
}); |
+ test("runs outer callbacks even when inner ones fail", () async { |
+ var outerTearDownRun = false; |
+ _declarer.tearDown(() { |
+ return new Future(() => outerTearDownRun = true); |
+ }); |
+ |
+ _declarer.group("inner", () { |
+ _declarer.tearDown(() { |
+ throw 'inner error'; |
+ }); |
+ |
+ _declarer.test("description", expectAsync(() { |
+ expect(outerTearDownRun, isFalse); |
+ }, max: 1)); |
+ }); |
+ |
+ await _runTest(0, shouldFail: true); |
+ expect(outerTearDownRun, isTrue); |
+ }); |
+ |
test("can't be called multiple times", () { |
_declarer.group("group", () { |
_declarer.tearDown(() {}); |