mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
Add useColorScheme mock test (#47988)
Summary: add a jest test to test when `useColorScheme` is not mocked. following up https://github.com/facebook/react-native/pull/47629#issuecomment-2491534678 ## Changelog: [GENERAL] [ADDED] - Add useColorScheme mock test Pull Request resolved: https://github.com/facebook/react-native/pull/47988 Test Plan: ci passed Reviewed By: javache Differential Revision: D66573172 Pulled By: blakef fbshipit-source-id: 820227f6fc4e18a968b3181fad8f534a716f1e9e
This commit is contained in:
committed by
Facebook GitHub Bot
parent
6ae49ee9e3
commit
24fee29f7a
@@ -0,0 +1,39 @@
|
||||
/**
|
||||
* 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
|
||||
* @oncall react_native
|
||||
*/
|
||||
|
||||
import useColorScheme from '../useColorScheme';
|
||||
|
||||
describe('useColorScheme', () => {
|
||||
it('should return a mocked light theme by default', () => {
|
||||
expect(jest.isMockFunction(useColorScheme)).toBe(true);
|
||||
expect(useColorScheme()).toBe('light');
|
||||
});
|
||||
|
||||
it('should have console.error when not using mock', () => {
|
||||
const useColorSchemeActual = jest.requireActual<{
|
||||
default: typeof useColorScheme,
|
||||
}>('../useColorScheme').default;
|
||||
const spy = jest.spyOn(console, 'error').mockImplementationOnce(() => {
|
||||
// Simulate LogBox console.error() call to throw an error and stop the further execution
|
||||
throw new Error('console.error() was called');
|
||||
});
|
||||
|
||||
expect(() => {
|
||||
useColorSchemeActual();
|
||||
}).toThrow();
|
||||
|
||||
expect(spy).toHaveBeenCalledWith(
|
||||
expect.stringMatching(
|
||||
/Invalid hook call. Hooks can only be called inside of the body of a function component./,
|
||||
),
|
||||
);
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user