react-native-background-timer
react-native-background-timer copied to clipboard
Jest: Invariant Violation: `new NativeEventEmitter()` requires a non-null argument.
The following error will be reported if jest is not configured
FAIL __tests__/App-test.tsx
● Test suite failed to run
Invariant Violation: `new NativeEventEmitter()` requires a non-null argument.
6 | import {IconButton, TouchableRipple} from 'react-native-paper';
7 | import Ionicons from 'react-native-vector-icons/Ionicons';
> 8 | import BackgroundTimer from 'react-native-background-timer';
| ^
9 | import dayjs from 'dayjs';
10 | import relativeTime from 'dayjs/plugin/relativeTime';
11 | import 'dayjs/locale/zh-cn';
at invariant (node_modules/invariant/invariant.js:40:15)
at new NativeEventEmitter (node_modules/react-native/Libraries/EventEmitter/NativeEventEmitter.js:44:7)
at Object.<anonymous> (node_modules/react-native-background-timer/index.js:10:17)
at Object.<anonymous> (src/screens/Home.tsx:8:1)
at Object.<anonymous> (App.tsx:6:1)
at Object.<anonymous> (__tests__/App-test.tsx:7:1)
Test Suites: 1 failed, 1 total
Tests: 0 total
Snapshots: 0 total
Time: 4.29 s, estimated 7 s
Ran all test suites.
error Command failed with exit code 1.
So maybe we should configure jest manually, like:
// jest.setup.js
jest.doMock('react-native-background-timer', () => {
return {
stopBackgroundTimer: jest.fn(),
runBackgroundTimer: jest.fn(),
};
});
This allows the unit tests to pass with flying colors
repo here: https://github.com/shensven/ReadHubn/tree/5806faf354fbd178827aff9985efe4dea906c24d
test here: https://github.com/shensven/ReadHubn/runs/3824410010?check_suite_focus=true