From 774358d2c2b0a67d90cdc568bad8ab87c25133d1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Warda?= Date: Tue, 26 Apr 2022 19:14:35 +0200 Subject: [PATCH] Add missing specs for skipping with only --- docs/GlobalAPI.md | 1 - .../__snapshots__/testFailing.test.ts.snap | 33 ++++++++++++++++--- .../__tests__/worksWithOnlyMode.test.js | 23 ++++++++++--- packages/jest-circus/src/eventHandler.ts | 10 +++++- 4 files changed, 56 insertions(+), 11 deletions(-) diff --git a/docs/GlobalAPI.md b/docs/GlobalAPI.md index ae227c5e4571..118cc166f612 100644 --- a/docs/GlobalAPI.md +++ b/docs/GlobalAPI.md @@ -898,4 +898,3 @@ test.failing('it is equal', () => { expect(10).toBe(10); // this test will fail }); ``` - diff --git a/e2e/__tests__/__snapshots__/testFailing.test.ts.snap b/e2e/__tests__/__snapshots__/testFailing.test.ts.snap index 271aee186a03..04bebcc95d30 100644 --- a/e2e/__tests__/__snapshots__/testFailing.test.ts.snap +++ b/e2e/__tests__/__snapshots__/testFailing.test.ts.snap @@ -37,16 +37,39 @@ exports[`works with only mode 1`] = ` "FAIL __tests__/worksWithOnlyMode.test.js block with only, should pass ✓ failing failes = passes, should pass - ○ skipped failing test - ○ skipped passing test + ○ skipped failing test but skipped + ○ skipped passing test but skipped block with only, should fail ✕ failing passes = fails, should fail - ○ skipped failing test - ○ skipped passing test + ○ skipped failing test but skipped + ○ skipped passing test but skipped + block with only in other it, should skip + ✕ failing test + ○ skipped failing passes = fails, should fail but skipped + ○ skipped passing test but skipped ● block with only, should fail › failing passes = fails, should fail - Failing test passed even though it was supposed to fail. Remove \`.failing\` to remove error." + Failing test passed even though it was supposed to fail. Remove \`.failing\` to remove error. + + + + ● block with only in other it, should skip › failing test + + expect(received).toBe(expected) // Object.is equality + + Expected: 101 + Received: 10 + + 41 | // eslint-disable-next-line jest/no-focused-tests + 42 | it.only('failing test', () => { + > 43 | expect(10).toBe(101); + | ^ + 44 | }); + 45 | + 46 | it('passing test but skipped', () => { + + at Object.toBe (__tests__/worksWithOnlyMode.test.js:43:16)" `; exports[`works with skip mode 1`] = ` diff --git a/e2e/test-failing/__tests__/worksWithOnlyMode.test.js b/e2e/test-failing/__tests__/worksWithOnlyMode.test.js index adfb5b43521d..4ae2057d83c6 100644 --- a/e2e/test-failing/__tests__/worksWithOnlyMode.test.js +++ b/e2e/test-failing/__tests__/worksWithOnlyMode.test.js @@ -10,11 +10,11 @@ describe('block with only, should pass', () => { expect(10).toBe(101); }); - it('failing test', () => { + it('failing test but skipped', () => { expect(10).toBe(101); }); - it('passing test', () => { + it('passing test but skipped', () => { expect(10).toBe(10); }); }); @@ -24,11 +24,26 @@ describe('block with only, should fail', () => { expect(10).toBe(10); }); - it('failing test', () => { + it('failing test but skipped', () => { expect(10).toBe(101); }); - it('passing test', () => { + it('passing test but skipped', () => { + expect(10).toBe(10); + }); +}); + +describe('block with only in other it, should skip', () => { + it.failing('failing passes = fails, should fail but skipped', () => { + expect(10).toBe(10); + }); + + // eslint-disable-next-line jest/no-focused-tests + it.only('failing test', () => { + expect(10).toBe(101); + }); + + it('passing test but skipped', () => { expect(10).toBe(10); }); }); diff --git a/packages/jest-circus/src/eventHandler.ts b/packages/jest-circus/src/eventHandler.ts index 38aee07a563e..904ebd383d7a 100644 --- a/packages/jest-circus/src/eventHandler.ts +++ b/packages/jest-circus/src/eventHandler.ts @@ -122,7 +122,15 @@ const eventHandler: Circus.EventHandler = (event, state) => { } case 'add_test': { const {currentDescribeBlock, currentlyRunningTest, hasStarted} = state; - const {asyncError, fn, mode, testName: name, timeout, concurrent, failing} = event; + const { + asyncError, + fn, + mode, + testName: name, + timeout, + concurrent, + failing, + } = event; if (currentlyRunningTest) { currentlyRunningTest.errors.push(