learning_ai_notes/mobile/__mocks__/expo-router.ts
saravanakumardb1 5a0175fa66 feat(mobile): add Block H — Vitest RN mock aliases + component smoke tests
- Create __mocks__/ with react-native, expo-router, expo-constants, expo-status-bar, react-native-mmkv, @testing-library/react-native
- Update vitest.config.ts with resolve aliases for all native modules
- Add AuthScreen smoke test (3 tests)
- Add HomeScreen smoke test (2 tests)
- Add @types/react-test-renderer dev dependency
- Total: 32 passing tests (27 store + 5 component)
2026-03-31 00:42:49 -07:00

45 lines
1006 B
TypeScript

/**
* Minimal expo-router mock for Vitest component tests.
*/
import React from 'react';
export const router = {
push: () => {},
replace: () => {},
back: () => {},
canGoBack: () => false,
};
export function useRouter() {
return router;
}
export function useLocalSearchParams() {
return {};
}
export function useSegments() {
return [];
}
export const Link = (props: Record<string, unknown>) =>
React.createElement('Link', props, props.children as React.ReactNode);
export const Stack = Object.assign(
(props: Record<string, unknown>) =>
React.createElement('Stack', props, props.children as React.ReactNode),
{
Screen: (props: Record<string, unknown>) =>
React.createElement('Stack.Screen', props),
},
);
export const Tabs = Object.assign(
(props: Record<string, unknown>) =>
React.createElement('Tabs', props, props.children as React.ReactNode),
{
Screen: (props: Record<string, unknown>) =>
React.createElement('Tabs.Screen', props),
},
);