From ac2b289c151d3f77a2507ba63f06ad02072b73bb Mon Sep 17 00:00:00 2001 From: Tayeeb Hasan <40818234+flozender@users.noreply.github.com> Date: Tue, 13 Oct 2020 23:35:58 +0530 Subject: [PATCH] Add tests for all variations of `jest.resetModules` (#10628) --- e2e/__tests__/requireMainResetModules.test.ts | 4 ++-- .../resetModulesCallDirectly.test.js | 23 +++++++++++++++++++ .../resetModulesCallIndirectly.test.js | 23 +++++++++++++++++++ ...st.js => resetModulesFlagDirectly.test.js} | 4 ++-- ....js => resetModulesFlagIndirectly.test.js} | 12 ++-------- .../{index.js => direct.js} | 0 e2e/require-main-reset-modules/indirect.js | 8 +++++++ 7 files changed, 60 insertions(+), 14 deletions(-) create mode 100644 e2e/require-main-reset-modules/__tests__/resetModulesCallDirectly.test.js create mode 100644 e2e/require-main-reset-modules/__tests__/resetModulesCallIndirectly.test.js rename e2e/require-main-reset-modules/__tests__/{index.test.js => resetModulesFlagDirectly.test.js} (79%) rename e2e/require-main-reset-modules/__tests__/{callJestResetModules.test.js => resetModulesFlagIndirectly.test.js} (67%) rename e2e/require-main-reset-modules/{index.js => direct.js} (100%) create mode 100644 e2e/require-main-reset-modules/indirect.js diff --git a/e2e/__tests__/requireMainResetModules.test.ts b/e2e/__tests__/requireMainResetModules.test.ts index d12459c99ec4..f292d991bc4d 100644 --- a/e2e/__tests__/requireMainResetModules.test.ts +++ b/e2e/__tests__/requireMainResetModules.test.ts @@ -10,14 +10,14 @@ import runJest from '../runJest'; test("`require.main` on using `--resetModules='true'` should not be undefined", () => { const {exitCode} = runJest('require-main-reset-modules', [ `--resetModules='true'`, - 'index.test.js', + 'resetModulesFlag', ]); expect(exitCode).toBe(0); }); test('`require.main` on using `jest.resetModules()` should not be undefined', () => { const {exitCode} = runJest('require-main-reset-modules', [ - 'callJestResetModules.test.js', + 'resetModulesCall', ]); expect(exitCode).toBe(0); }); diff --git a/e2e/require-main-reset-modules/__tests__/resetModulesCallDirectly.test.js b/e2e/require-main-reset-modules/__tests__/resetModulesCallDirectly.test.js new file mode 100644 index 000000000000..8108218178c9 --- /dev/null +++ b/e2e/require-main-reset-modules/__tests__/resetModulesCallDirectly.test.js @@ -0,0 +1,23 @@ +/** + * Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +beforeEach(() => { + jest.resetModules(); +}); + +afterEach(() => { + jest.resetModules(); +}); + +test('require.main is set on requiring directly', () => { + const {getMain} = require('../direct.js'); + expect(getMain()).toBeTruthy(); +}); + +test('require from main works on requiring directly', () => { + const {requireFromMain} = require('../direct.js'); + expect(requireFromMain('../package.json')).toBeTruthy(); +}); diff --git a/e2e/require-main-reset-modules/__tests__/resetModulesCallIndirectly.test.js b/e2e/require-main-reset-modules/__tests__/resetModulesCallIndirectly.test.js new file mode 100644 index 000000000000..14c9027c81a9 --- /dev/null +++ b/e2e/require-main-reset-modules/__tests__/resetModulesCallIndirectly.test.js @@ -0,0 +1,23 @@ +/** + * Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +beforeEach(() => { + jest.resetModules(); +}); + +afterEach(() => { + jest.resetModules(); +}); + +test('require.main is set on requiring indirectly', () => { + const {getMain} = require('../indirect.js'); + expect(getMain()).toBeTruthy(); +}); + +test('require from main works on requiring indirectly', () => { + const {requireFromMain} = require('../indirect.js'); + expect(requireFromMain('../package.json')).toBeTruthy(); +}); diff --git a/e2e/require-main-reset-modules/__tests__/index.test.js b/e2e/require-main-reset-modules/__tests__/resetModulesFlagDirectly.test.js similarity index 79% rename from e2e/require-main-reset-modules/__tests__/index.test.js rename to e2e/require-main-reset-modules/__tests__/resetModulesFlagDirectly.test.js index 2034c089b329..68ba72f8b00c 100644 --- a/e2e/require-main-reset-modules/__tests__/index.test.js +++ b/e2e/require-main-reset-modules/__tests__/resetModulesFlagDirectly.test.js @@ -5,11 +5,11 @@ * LICENSE file in the root directory of this source tree. */ test('require.main is set', () => { - const {getMain} = require('../index.js'); + const {getMain} = require('../direct.js'); expect(getMain()).toBeTruthy(); }); test('require from main works', () => { - const {requireFromMain} = require('../index.js'); + const {requireFromMain} = require('../direct.js'); expect(requireFromMain('../package.json')).toBeTruthy(); }); diff --git a/e2e/require-main-reset-modules/__tests__/callJestResetModules.test.js b/e2e/require-main-reset-modules/__tests__/resetModulesFlagIndirectly.test.js similarity index 67% rename from e2e/require-main-reset-modules/__tests__/callJestResetModules.test.js rename to e2e/require-main-reset-modules/__tests__/resetModulesFlagIndirectly.test.js index a76b30697219..980c9158af73 100644 --- a/e2e/require-main-reset-modules/__tests__/callJestResetModules.test.js +++ b/e2e/require-main-reset-modules/__tests__/resetModulesFlagIndirectly.test.js @@ -4,20 +4,12 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ -beforeEach(() => { - jest.resetModules(); -}); - -afterEach(() => { - jest.resetModules(); -}); - test('require.main is set', () => { - const {getMain} = require('../index.js'); + const {getMain} = require('../indirect.js'); expect(getMain()).toBeTruthy(); }); test('require from main works', () => { - const {requireFromMain} = require('../index.js'); + const {requireFromMain} = require('../indirect.js'); expect(requireFromMain('../package.json')).toBeTruthy(); }); diff --git a/e2e/require-main-reset-modules/index.js b/e2e/require-main-reset-modules/direct.js similarity index 100% rename from e2e/require-main-reset-modules/index.js rename to e2e/require-main-reset-modules/direct.js diff --git a/e2e/require-main-reset-modules/indirect.js b/e2e/require-main-reset-modules/indirect.js new file mode 100644 index 000000000000..cd8a5c98d41a --- /dev/null +++ b/e2e/require-main-reset-modules/indirect.js @@ -0,0 +1,8 @@ +/** + * Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +const {getMain, requireFromMain} = require('./direct'); +Object.assign(exports, {getMain, requireFromMain});