Fix tests failing on Windows (#1052)

Summary:
Pull Request resolved: https://github.com/facebook/flipper/pull/1052

Fixed tests failing on Windows because jest auto-mocks works differently there

Reviewed By: passy

Differential Revision: D21237618

fbshipit-source-id: 31c7e92b7f8ae84c1e65fd37428204452b3f1b00
This commit is contained in:
Anton Nikolaev
2020-04-27 07:15:08 -07:00
committed by Facebook GitHub Bot
parent fcb89b94b5
commit 773b0b7f67
4 changed files with 22 additions and 5 deletions

View File

@@ -7,7 +7,7 @@
* @format * @format
*/ */
jest.mock('../../defaultPlugins/index'); jest.mock('../../defaultPlugins');
import dispatcher, { import dispatcher, {
getDynamicPlugins, getDynamicPlugins,
@@ -114,7 +114,7 @@ test('checkGK for failing plugin', () => {
}); });
test('requirePlugin returns null for invalid requires', () => { test('requirePlugin returns null for invalid requires', () => {
const requireFn = requirePlugin([], require); const requireFn = requirePlugin([], {}, require);
const plugin = requireFn({ const plugin = requireFn({
name: 'pluginID', name: 'pluginID',
entry: 'this/path/does not/exist', entry: 'this/path/does not/exist',
@@ -125,7 +125,7 @@ test('requirePlugin returns null for invalid requires', () => {
test('requirePlugin loads plugin', () => { test('requirePlugin loads plugin', () => {
const name = 'pluginID'; const name = 'pluginID';
const requireFn = requirePlugin([], require); const requireFn = requirePlugin([], {}, require);
const plugin = requireFn({ const plugin = requireFn({
name, name,
entry: path.join(__dirname, 'TestPlugin'), entry: path.join(__dirname, 'TestPlugin'),

View File

@@ -31,7 +31,7 @@ import {notNull} from '../utils/typeUtils';
import {sideEffect} from '../utils/sideEffect'; import {sideEffect} from '../utils/sideEffect';
// eslint-disable-next-line import/no-unresolved // eslint-disable-next-line import/no-unresolved
import {default as defaultPluginsIndex} from '../defaultPlugins/index'; import getPluginIndex from '../utils/getDefaultPluginsIndex';
export type PluginDefinition = { export type PluginDefinition = {
id?: string; id?: string;
@@ -53,12 +53,14 @@ export default (store: Store, logger: Logger) => {
const disabledPlugins: Array<PluginDefinition> = []; const disabledPlugins: Array<PluginDefinition> = [];
const failedPlugins: Array<[PluginDefinition, string]> = []; const failedPlugins: Array<[PluginDefinition, string]> = [];
const defaultPluginsIndex = getPluginIndex();
const initialPlugins: Array< const initialPlugins: Array<
typeof FlipperPlugin | typeof FlipperDevicePlugin typeof FlipperPlugin | typeof FlipperDevicePlugin
> = [...getBundledPlugins(), ...getDynamicPlugins()] > = [...getBundledPlugins(), ...getDynamicPlugins()]
.filter(checkDisabled(disabledPlugins)) .filter(checkDisabled(disabledPlugins))
.filter(checkGK(gatekeepedPlugins)) .filter(checkGK(gatekeepedPlugins))
.map(requirePlugin(failedPlugins)) .map(requirePlugin(failedPlugins, defaultPluginsIndex))
.filter(notNull); .filter(notNull);
store.dispatch(addGatekeepedPlugins(gatekeepedPlugins)); store.dispatch(addGatekeepedPlugins(gatekeepedPlugins));
@@ -150,6 +152,7 @@ export const checkDisabled = (disabledPlugins: Array<PluginDefinition>) => (
export const requirePlugin = ( export const requirePlugin = (
failedPlugins: Array<[PluginDefinition, string]>, failedPlugins: Array<[PluginDefinition, string]>,
defaultPluginsIndex: any,
reqFn: Function = global.electronRequire, reqFn: Function = global.electronRequire,
) => { ) => {
return ( return (

View File

@@ -0,0 +1,13 @@
/**
* 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
*/
export default function () {
// eslint-disable-next-line import/no-unresolved
return require('../defaultPlugins');
}

View File

@@ -43,6 +43,7 @@ export async function generatePluginEntryPoints() {
.map((x) => ` '${x.name}': require('${x.name}')`) .map((x) => ` '${x.name}': require('${x.name}')`)
.join(',\n'); .join(',\n');
const generatedIndex = ` const generatedIndex = `
/* eslint-disable */
// THIS FILE IS AUTO-GENERATED by function "generatePluginEntryPoints" in "build-utils.ts". // THIS FILE IS AUTO-GENERATED by function "generatePluginEntryPoints" in "build-utils.ts".
export default {\n${pluginRequres}\n} as any export default {\n${pluginRequres}\n} as any
`; `;