diff --git a/packages/jest-preset/jest/__tests__/setup-test.js b/packages/jest-preset/jest/__tests__/setup-test.js index 8e8daed7caf4..dcde537690c9 100644 --- a/packages/jest-preset/jest/__tests__/setup-test.js +++ b/packages/jest-preset/jest/__tests__/setup-test.js @@ -10,6 +10,31 @@ import NativeExceptionsManager from 'react-native/Libraries/Core/NativeExceptionsManager'; +test('NativeAnimatedHelper is a mock', () => { + const consoleWarn = jest.spyOn(console, 'warn').mockImplementation(() => {}); + + try { + const NativeAnimatedHelper: { + assertNativeAnimatedModule: () => void, + nativeEventEmitter: {addListener: () => void}, + shouldUseNativeDriver: () => boolean, + } = jest.requireMock( + 'react-native/src/private/animated/NativeAnimatedHelper', + ).default; + + expect( + jest.isMockFunction(NativeAnimatedHelper.assertNativeAnimatedModule), + ).toBe(true); + expect(NativeAnimatedHelper.nativeEventEmitter).toBeDefined(); + expect( + jest.isMockFunction(NativeAnimatedHelper.shouldUseNativeDriver), + ).toBe(false); + expect(consoleWarn).not.toHaveBeenCalled(); + } finally { + consoleWarn.mockRestore(); + } +}); + test('NativeExceptionsManager is a mock', () => { expect(jest.isMockFunction(NativeExceptionsManager.reportException)).toBe( true, diff --git a/packages/jest-preset/jest/mocks/NativeAnimatedHelper.js b/packages/jest-preset/jest/mocks/NativeAnimatedHelper.js new file mode 100644 index 000000000000..da2acd07c47e --- /dev/null +++ b/packages/jest-preset/jest/mocks/NativeAnimatedHelper.js @@ -0,0 +1,22 @@ +/** + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * + * @flow strict-local + * @format + */ + +import typeof TNativeAnimatedHelper from 'react-native/src/private/animated/NativeAnimatedHelper'; + +const NativeAnimatedHelper = jest.requireActual<{ + default: TNativeAnimatedHelper, +}>('react-native/src/private/animated/NativeAnimatedHelper').default; + +const NativeAnimatedHelperMock: TNativeAnimatedHelper = { + ...NativeAnimatedHelper, + assertNativeAnimatedModule: jest.fn(), +}; + +export default NativeAnimatedHelperMock; diff --git a/packages/jest-preset/jest/setup.js b/packages/jest-preset/jest/setup.js index 5082aece44fe..5e9935494a0e 100644 --- a/packages/jest-preset/jest/setup.js +++ b/packages/jest-preset/jest/setup.js @@ -176,3 +176,7 @@ mock( // $FlowFixMe[incompatible-type] 'm#./mocks/Vibration', ); +mock( + 'm#react-native/src/private/animated/NativeAnimatedHelper', + 'm#./mocks/NativeAnimatedHelper', +);