Use jest to mock electron in tests
Summary: Replacing our custom electron-stubs transform with a mocked module. This will now be the default impl for tests, and we can override it by mocking as needed. Reviewed By: passy Differential Revision: D17979659 fbshipit-source-id: a26994158d439fa7dc1ca38225294106fc4e1559
This commit is contained in:
committed by
Facebook Github Bot
parent
14dd792829
commit
fdee0ef7b7
23
__mocks__/electron.tsx
Normal file
23
__mocks__/electron.tsx
Normal file
@@ -0,0 +1,23 @@
|
||||
/**
|
||||
* Copyright (c) Facebook, Inc. and its affiliates.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*
|
||||
* @format
|
||||
*/
|
||||
|
||||
module.exports = {
|
||||
remote: {
|
||||
process: {
|
||||
env: {},
|
||||
},
|
||||
app: {
|
||||
getAppPath: process.cwd,
|
||||
getVersion: () => '0.9.99',
|
||||
relaunch: () => {},
|
||||
exit: () => {},
|
||||
},
|
||||
getCurrentWindow: () => ({isFocused: () => true}),
|
||||
},
|
||||
};
|
||||
@@ -7,6 +7,13 @@
|
||||
* @format
|
||||
*/
|
||||
|
||||
jest.mock('../fb-stubs/Logger');
|
||||
try {
|
||||
jest.mock('../fb/Logger');
|
||||
} catch {
|
||||
// Allowed to fail when fb modules are not present.
|
||||
}
|
||||
|
||||
import Server from '../server';
|
||||
import {init as initLogger} from '../fb-stubs/Logger';
|
||||
import reducers, {Store} from '../reducers/index';
|
||||
|
||||
@@ -63,12 +63,8 @@ function transform({filename, options, src}) {
|
||||
|
||||
if (process.env.BUILD_HEADLESS) {
|
||||
plugins.push(require('./electron-stubs.js'));
|
||||
plugins.push(require('./electron-requires.js'));
|
||||
} else if (options.isTestRunner) {
|
||||
if (process.env.USE_ELECTRON_STUBS) {
|
||||
plugins.push(require('./electron-stubs.js'));
|
||||
}
|
||||
} else {
|
||||
if (!options.isTestRunner) {
|
||||
// Replacing require statements with electronRequire to prevent metro from
|
||||
// resolving them. electronRequire are resolved during runtime by electron.
|
||||
// As the tests are not bundled by metro and run in @jest-runner/electron,
|
||||
|
||||
Reference in New Issue
Block a user