From 4418e7693e13d56deea7f1e6e10ea3cb0158cce5 Mon Sep 17 00:00:00 2001 From: Anjorin Olufemi Benjamin <31329500+anje123@users.noreply.github.com> Date: Sun, 6 Dec 2020 11:29:52 +0100 Subject: [PATCH] Fix: jest-worker: should not expose `.default` babel interop (#10623) Co-authored-by: Tayeeb Hasan --- CHANGELOG.md | 1 + packages/jest-haste-map/src/__tests__/index.test.js | 8 ++++---- packages/jest-haste-map/src/index.ts | 2 +- packages/jest-reporters/src/CoverageReporter.ts | 2 +- packages/jest-runner/src/__tests__/testRunner.test.ts | 6 +++--- packages/jest-runner/src/index.ts | 2 +- packages/jest-worker/README.md | 2 +- packages/jest-worker/src/__performance_tests__/test.js | 2 +- packages/jest-worker/src/__tests__/index.test.js | 2 +- .../jest-worker/src/__tests__/process-integration.test.js | 2 +- .../jest-worker/src/__tests__/thread-integration.test.js | 2 +- packages/jest-worker/src/index.ts | 2 +- 12 files changed, 17 insertions(+), 16 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 72065f685866..692ac1876000 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -37,6 +37,7 @@ - `[jest-transform]` Show enhanced `SyntaxError` message for all `SyntaxError`s ([#10749](https://github.com/facebook/jest/pull/10749)) - `[jest-transform]` [**BREAKING**] Refactor API to pass an options bag around rather than multiple boolean options ([#10753](https://github.com/facebook/jest/pull/10753)) - `[jest-transform]` [**BREAKING**] Refactor API of transformers to pass an options bag rather than separate `config` and other options ([#10834](https://github.com/facebook/jest/pull/10834)) +- `[jest-worker]` [**BREAKING**] Use named exports ([#10623] (https://github.com/facebook/jest/pull/10623)) - `[pretty-format]` [**BREAKING**] Convert to ES Modules ([#10515](https://github.com/facebook/jest/pull/10515)) ### Chore & Maintenance diff --git a/packages/jest-haste-map/src/__tests__/index.test.js b/packages/jest-haste-map/src/__tests__/index.test.js index 7bf339408e80..edf8570f5f29 100644 --- a/packages/jest-haste-map/src/__tests__/index.test.js +++ b/packages/jest-haste-map/src/__tests__/index.test.js @@ -19,8 +19,8 @@ jest.mock('child_process', () => ({ execSync() {}, })); -jest.mock('jest-worker', () => - jest.fn(worker => { +jest.mock('jest-worker', () => ({ + Worker: jest.fn(worker => { mockWorker = jest.fn((...args) => require(worker).worker(...args)); mockEnd = jest.fn(); @@ -29,7 +29,7 @@ jest.mock('jest-worker', () => worker: mockWorker, }; }), -); +})); jest.mock('../crawlers/node'); jest.mock('../crawlers/watchman', () => @@ -1197,7 +1197,7 @@ describe('HasteMap', () => { }); it('distributes work across workers', () => { - const jestWorker = require('jest-worker'); + const jestWorker = require('jest-worker').Worker; const path = require('path'); const dependencyExtractor = path.join(__dirname, 'dependencyExtractor.js'); return new HasteMap({ diff --git a/packages/jest-haste-map/src/index.ts b/packages/jest-haste-map/src/index.ts index 04f805b5c441..b60466900d1d 100644 --- a/packages/jest-haste-map/src/index.ts +++ b/packages/jest-haste-map/src/index.ts @@ -16,7 +16,7 @@ import type {Stats} from 'graceful-fs'; import type {Config} from '@jest/types'; import {escapePathForRegex} from 'jest-regex-util'; import serializer from 'jest-serializer'; -import Worker from 'jest-worker'; +import {Worker} from 'jest-worker'; import HasteFS from './HasteFS'; import HasteModuleMap from './ModuleMap'; import H from './constants'; diff --git a/packages/jest-reporters/src/CoverageReporter.ts b/packages/jest-reporters/src/CoverageReporter.ts index 73687e1f77b5..034ab6ae9802 100644 --- a/packages/jest-reporters/src/CoverageReporter.ts +++ b/packages/jest-reporters/src/CoverageReporter.ts @@ -24,7 +24,7 @@ import type { } from '@jest/test-result'; import type {Config} from '@jest/types'; import {clearLine, isInteractive} from 'jest-util'; -import Worker from 'jest-worker'; +import {Worker} from 'jest-worker'; import BaseReporter from './BaseReporter'; import getWatermarks from './getWatermarks'; import type { diff --git a/packages/jest-runner/src/__tests__/testRunner.test.ts b/packages/jest-runner/src/__tests__/testRunner.test.ts index df266697abaf..16fd75e183ad 100644 --- a/packages/jest-runner/src/__tests__/testRunner.test.ts +++ b/packages/jest-runner/src/__tests__/testRunner.test.ts @@ -11,8 +11,8 @@ import TestRunner from '../index'; let mockWorkerFarm; -jest.mock('jest-worker', () => - jest.fn( +jest.mock('jest-worker', () => ({ + Worker: jest.fn( worker => (mockWorkerFarm = { end: jest.fn().mockResolvedValue({forceExited: false}), @@ -21,7 +21,7 @@ jest.mock('jest-worker', () => worker: jest.fn((data, callback) => require(worker)(data, callback)), }), ), -); +})); jest.mock('../testWorker', () => {}); diff --git a/packages/jest-runner/src/index.ts b/packages/jest-runner/src/index.ts index e32636fd9a36..acc8139e1eec 100644 --- a/packages/jest-runner/src/index.ts +++ b/packages/jest-runner/src/index.ts @@ -12,7 +12,7 @@ import throat from 'throat'; import type {SerializableError, TestResult} from '@jest/test-result'; import type {Config} from '@jest/types'; import {deepCyclicCopy} from 'jest-util'; -import Worker, {PromiseWithCustomMessage} from 'jest-worker'; +import {PromiseWithCustomMessage, Worker} from 'jest-worker'; import runTest from './runTest'; import type {SerializableResolver, worker} from './testWorker'; import type { diff --git a/packages/jest-worker/README.md b/packages/jest-worker/README.md index d0523c940040..38b7dd60b89b 100644 --- a/packages/jest-worker/README.md +++ b/packages/jest-worker/README.md @@ -181,7 +181,7 @@ This example covers the usage with a `computeWorkerKey` method: ### File `parent.js` ```javascript -import JestWorker from 'jest-worker'; +import {Worker as JestWorker} from 'jest-worker'; async function main() { const myWorker = new JestWorker(require.resolve('./Worker'), { diff --git a/packages/jest-worker/src/__performance_tests__/test.js b/packages/jest-worker/src/__performance_tests__/test.js index 3a688eae05e4..53dbc688b76f 100644 --- a/packages/jest-worker/src/__performance_tests__/test.js +++ b/packages/jest-worker/src/__performance_tests__/test.js @@ -10,7 +10,7 @@ const assert = require('assert'); // eslint-disable-next-line import/no-extraneous-dependencies const workerFarm = require('worker-farm'); -const JestWorker = require('../../build').default; +const JestWorker = require('../../build').Worker; // Typical tests: node --expose-gc test.js empty 100000 // node --expose-gc test.js loadTest 10000 diff --git a/packages/jest-worker/src/__tests__/index.test.js b/packages/jest-worker/src/__tests__/index.test.js index 5fbd5293fef5..ec6f091289d5 100644 --- a/packages/jest-worker/src/__tests__/index.test.js +++ b/packages/jest-worker/src/__tests__/index.test.js @@ -52,7 +52,7 @@ beforeEach(() => { virtual: true, }); - Farm = require('..').default; + Farm = require('..').Worker; Queue = require('../Farm').default; WorkerPool = require('../WorkerPool').default; }); diff --git a/packages/jest-worker/src/__tests__/process-integration.test.js b/packages/jest-worker/src/__tests__/process-integration.test.js index b2d716669915..efc19257e57f 100644 --- a/packages/jest-worker/src/__tests__/process-integration.test.js +++ b/packages/jest-worker/src/__tests__/process-integration.test.js @@ -55,7 +55,7 @@ describe('Jest Worker Integration', () => { }, })); - Farm = require('../index').default; + Farm = require('../index').Worker; }); afterEach(() => { diff --git a/packages/jest-worker/src/__tests__/thread-integration.test.js b/packages/jest-worker/src/__tests__/thread-integration.test.js index fb97ecf24b30..206871f00940 100644 --- a/packages/jest-worker/src/__tests__/thread-integration.test.js +++ b/packages/jest-worker/src/__tests__/thread-integration.test.js @@ -56,7 +56,7 @@ describe('Jest Worker Process Integration', () => { }; }); - Farm = require('../index').default; + Farm = require('../index').Worker; }); afterEach(() => { diff --git a/packages/jest-worker/src/index.ts b/packages/jest-worker/src/index.ts index 5b2613acda37..19ee73b156cc 100644 --- a/packages/jest-worker/src/index.ts +++ b/packages/jest-worker/src/index.ts @@ -67,7 +67,7 @@ function getExposedMethods( * processed by the same worker. This is specially useful if your workers * are caching results. */ -export default class JestWorker { +export class Worker { private _ending: boolean; private _farm: Farm; private _options: FarmOptions;