fix: Resolve Jest CI Failures

This commit is contained in:
Rajarshee Chatterjee
2026-09-23 12:08:49 +05:30
parent cef3ae5bdf
commit 920f88aee4
3 changed files with 53 additions and 2 deletions
+1 -1
View File
@@ -31,7 +31,7 @@ const baseTransform = {
const baseTransformIgnorePatterns = [
// 'node_modules/(?!(.pnpm/|@op-engineering|drizzle-orm|lodash-es|@babel/runtime))',
'node_modules/(?!(?:.pnpm/)?((jest-)?react-native|@react-native(-community)?|expo(nent)?|@expo(nent)?/.*|@expo-google-fonts/.*|react-navigation|@react-navigation/.*|@sentry/react-native|native-base|react-native-svg|color|@op-engineering|drizzle-orm|lodash-es))',
'node_modules/(?!(?:.pnpm/)?((jest-)?react-native|@react-native(-community)?|expo(nent)?|@expo(nent)?/.*|@expo-google-fonts/.*|@material/material-color-utilities|@pchmn/expo-material3-theme|react-navigation|@react-navigation/.*|@sentry/react-native|native-base|react-native-svg|color|@op-engineering|drizzle-orm|lodash-es))',
];
module.exports = {
@@ -1,4 +1,5 @@
import { fireEvent, render, screen } from '@test-utils';
import type { ReactNode } from 'react';
import { ReplaceItem } from '../ListItems';
import Snippet from '../Snippet';
@@ -24,6 +25,33 @@ jest.mock('@hooks/persisted', () => ({
useTheme: () => theme,
}));
jest.mock('@components/AppErrorBoundary/AppErrorBoundary', () => ({
__esModule: true,
default: ({ children }: { children: ReactNode }) => children,
}));
jest.mock('@screens/novel/NovelContext', () => ({
NovelContextProvider: ({ children }: { children: ReactNode }) => children,
}));
jest.mock('react-native-safe-area-context', () => {
const ReactModule = require('react');
const { View } = jest.requireActual('react-native');
const frame = { height: 800, width: 400, x: 0, y: 0 };
const insets = { bottom: 0, left: 0, right: 0, top: 0 };
return {
SafeAreaFrameContext: ReactModule.createContext(frame),
SafeAreaInsetsContext: ReactModule.createContext(insets),
SafeAreaProvider: ({ children }: { children: ReactNode }) => children,
SafeAreaView: ({ children, ...props }: { children: ReactNode }) =>
ReactModule.createElement(View, props, children),
initialWindowMetrics: { frame, insets },
useSafeAreaFrame: () => frame,
useSafeAreaInsets: () => insets,
};
});
jest.mock('@i18n/translations', () => ({
getString: (key: string) =>
({
@@ -76,7 +104,9 @@ describe('custom code cards', () => {
/>,
);
const card = screen.getByLabelText('Bigger paragraph spacing');
const card = screen.getByRole('button', {
name: 'Bigger paragraph spacing',
});
expect(card.props.onPress).toBeUndefined();
fireEvent(card, 'longPress');
+21
View File
@@ -1,6 +1,27 @@
// require('react-native-gesture-handler/jestSetup');
// require('react-native-reanimated').setUpTests();
jest.mock('react-native-device-info', () => ({
__esModule: true,
default: {
getApiLevel: jest.fn().mockResolvedValue(35),
getBrand: jest.fn(() => 'mock-brand'),
getBuildId: jest.fn().mockResolvedValue('mock-build-id'),
getBuildNumber: jest.fn(() => '1'),
getBundleId: jest.fn(() => 'com.lnreader'),
getDeviceId: jest.fn(() => 'mock-device'),
getManufacturer: jest.fn().mockResolvedValue('mock-manufacturer'),
getModel: jest.fn(() => 'mock-model'),
getSystemName: jest.fn(() => 'Android'),
getSystemVersion: jest.fn(() => '15'),
supportedAbis: jest.fn().mockResolvedValue([]),
},
getBatteryLevel: jest.fn().mockResolvedValue(1),
getBatteryLevelSync: jest.fn(() => 1),
getUserAgentSync: jest.fn(() => 'LNReader test'),
useBatteryLevel: jest.fn(() => 1),
}));
jest.mock('@modules/native-file', () => ({
__esModule: true,
default: {