From 3960b179a18d9f8c982a32da27e6c4ea0ba2a2cb Mon Sep 17 00:00:00 2001 From: Dmitry Gozman Date: Mon, 16 Mar 2020 19:12:52 -0700 Subject: [PATCH] fix(testrunner): fit.fail should run the test (#1407) --- utils/testrunner/TestRunner.js | 2 +- utils/testrunner/test/testrunner.spec.js | 9 +++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/utils/testrunner/TestRunner.js b/utils/testrunner/TestRunner.js index fef7f156b1..ee25255e6c 100644 --- a/utils/testrunner/TestRunner.js +++ b/utils/testrunner/TestRunner.js @@ -207,7 +207,7 @@ class TestWorker { return; } - if (test.expectation === TestExpectation.Fail) { + if (test.expectation === TestExpectation.Fail && test.declaredMode !== TestMode.Focus) { await this._testPass._willStartTest(this, test); test.result = TestResult.MarkedAsFailing; await this._testPass._didFinishTest(this, test); diff --git a/utils/testrunner/test/testrunner.spec.js b/utils/testrunner/test/testrunner.spec.js index 339f610582..5683517532 100644 --- a/utils/testrunner/test/testrunner.spec.js +++ b/utils/testrunner/test/testrunner.spec.js @@ -49,6 +49,15 @@ module.exports.addTests = function({testRunner, expect}) { expect(test.fullName).toBe('uno'); expect(test.declaredMode).toBe('focus'); }); + it('should run a failed focused test', async() => { + const t = newTestRunner(); + let run = false; + t.fit.fail(true)('uno', () => { run = true; throw new Error('failure'); }); + expect(t.tests().length).toBe(1); + await t.run(); + expect(run).toBe(true); + expect(t.failedTests()[0].name).toBe('uno'); + }); }); describe('TestRunner.describe', () => {