From bf79c9472ed3081b36deb4c11364a4c431e6a18b Mon Sep 17 00:00:00 2001 From: Michel Weststrate Date: Wed, 1 Jul 2020 08:58:40 -0700 Subject: [PATCH] Always mock FBLogger during unit tests Summary: Unit tests tend to randomly bail out once FBLogger is (indirectly) required by some module under test. This makes sure FBLogger is stubbed by default. We might want to do the same for `User` in the future. Reviewed By: jknoxville Differential Revision: D22186274 fbshipit-source-id: 2ede364c4b691d69826781355592226b075d8367 --- desktop/app/src/dispatcher/__tests__/plugins.node.tsx | 8 ++------ desktop/app/src/fb-stubs/Logger.tsx | 4 +--- .../data-inspector/__tests__/DataInspector.node.tsx | 6 ------ desktop/app/src/utils/__tests__/exportData.electron.tsx | 5 ----- .../layout/__tests__/MultipleSelectionSection.node.tsx | 6 ------ desktop/scripts/jest-setup.js | 2 ++ 6 files changed, 5 insertions(+), 26 deletions(-) diff --git a/desktop/app/src/dispatcher/__tests__/plugins.node.tsx b/desktop/app/src/dispatcher/__tests__/plugins.node.tsx index d7c24290a..7e08f099a 100644 --- a/desktop/app/src/dispatcher/__tests__/plugins.node.tsx +++ b/desktop/app/src/dispatcher/__tests__/plugins.node.tsx @@ -8,10 +8,6 @@ */ jest.mock('../../defaultPlugins'); -try { - jest.mock('../../fb/Logger', () => require('../../fb-stubs/Logger')); -} catch {} - import dispatcher, { getDynamicPlugins, checkDisabled, @@ -24,7 +20,7 @@ import path from 'path'; import {ipcRenderer, remote} from 'electron'; import {FlipperPlugin} from 'flipper'; import reducers, {State} from '../../reducers/index'; -import {init as initLogger} from '../../fb-stubs/Logger'; +import {getInstance} from '../../fb-stubs/Logger'; import configureStore from 'redux-mock-store'; import {TEST_PASSING_GK, TEST_FAILING_GK} from '../../fb-stubs/GK'; import TestPlugin from './TestPlugin'; @@ -34,7 +30,7 @@ import {SandyPluginDefinition} from 'flipper-plugin'; const mockStore = configureStore([])( reducers(undefined, {type: 'INIT'}), ); -const logger = initLogger(mockStore); +const logger = getInstance(); const samplePluginDetails: PluginDetails = { name: 'other Name', diff --git a/desktop/app/src/fb-stubs/Logger.tsx b/desktop/app/src/fb-stubs/Logger.tsx index d6b903966..f72bdc997 100644 --- a/desktop/app/src/fb-stubs/Logger.tsx +++ b/desktop/app/src/fb-stubs/Logger.tsx @@ -23,9 +23,7 @@ export function init(store: Store, _args?: Args): Logger { export function getInstance(): Logger { if (!instance) { - throw new Error( - 'Requested Logger instance without initializing it. Make sure init() is called at app start', - ); + return init(undefined as any /* store is not actually used */); } return instance; } diff --git a/desktop/app/src/ui/components/data-inspector/__tests__/DataInspector.node.tsx b/desktop/app/src/ui/components/data-inspector/__tests__/DataInspector.node.tsx index 426926fb2..d5f1994bb 100644 --- a/desktop/app/src/ui/components/data-inspector/__tests__/DataInspector.node.tsx +++ b/desktop/app/src/ui/components/data-inspector/__tests__/DataInspector.node.tsx @@ -10,12 +10,6 @@ import * as React from 'react'; import {render, fireEvent, waitFor, act} from '@testing-library/react'; -try { - jest.mock('../../../../fb/Logger'); -} catch { - jest.mock('../../../../fb-stubs/Logger'); -} - import ManagedDataInspector from '../ManagedDataInspector'; import {sleep} from '../../../../utils'; diff --git a/desktop/app/src/utils/__tests__/exportData.electron.tsx b/desktop/app/src/utils/__tests__/exportData.electron.tsx index d7d7cc97e..8eac314c2 100644 --- a/desktop/app/src/utils/__tests__/exportData.electron.tsx +++ b/desktop/app/src/utils/__tests__/exportData.electron.tsx @@ -7,11 +7,6 @@ * @format */ -try { - jest.mock('../../fb/Logger'); -} catch (e) { - jest.mock('../../fb-stubs/Logger'); -} import {State} from '../../reducers/index'; import configureStore from 'redux-mock-store'; import {default as BaseDevice} from '../../devices/BaseDevice'; diff --git a/desktop/plugins/layout/__tests__/MultipleSelectionSection.node.tsx b/desktop/plugins/layout/__tests__/MultipleSelectionSection.node.tsx index a376e99ba..87ba2ced0 100644 --- a/desktop/plugins/layout/__tests__/MultipleSelectionSection.node.tsx +++ b/desktop/plugins/layout/__tests__/MultipleSelectionSection.node.tsx @@ -10,12 +10,6 @@ import React from 'react'; import {render, fireEvent} from '@testing-library/react'; -try { - jest.mock('../../../app/src/fb/Logger'); -} catch { - jest.mock('../../../app/src/fb-stubs/Logger'); -} - import {Element} from 'flipper'; import MultipleSelectorSection from '../MultipleSelectionSection'; diff --git a/desktop/scripts/jest-setup.js b/desktop/scripts/jest-setup.js index 20dea3ba7..d37909386 100644 --- a/desktop/scripts/jest-setup.js +++ b/desktop/scripts/jest-setup.js @@ -10,3 +10,5 @@ global.fetch = require('jest-fetch-mock'); require('immer').enableMapSet(); + +require('../app/src/fb-stubs/Logger').init(undefined, {isTest: true});