Some checks failed
Build / Build Backend (push) Has been cancelled
Build / Build Mobile (TypeScript Check) (push) Has been cancelled
Lint / Lint Backend (push) Has been cancelled
Lint / Lint Mobile (push) Has been cancelled
Test / Backend E2E Tests (push) Has been cancelled
Test / Mobile Unit Tests (push) Has been cancelled
Build / Build Docker Image (push) Has been cancelled
- Add exports module with PDF/CSV/Excel generation - Add reports module for inventory analytics - Add POS integrations module - Add database migrations for exports, movements and integrations - Add GitHub Actions CI/CD workflow with Docker support - Add mobile export and reports screens with tests - Update epic documentation with traceability - Add deployment and security guides Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
72 lines
1.9 KiB
JavaScript
72 lines
1.9 KiB
JavaScript
// Mock expo-secure-store
|
|
jest.mock('expo-secure-store', () => ({
|
|
getItemAsync: jest.fn(() => Promise.resolve(null)),
|
|
setItemAsync: jest.fn(() => Promise.resolve()),
|
|
deleteItemAsync: jest.fn(() => Promise.resolve()),
|
|
}));
|
|
|
|
// Mock expo-router
|
|
jest.mock('expo-router', () => ({
|
|
useRouter: jest.fn(() => ({
|
|
push: jest.fn(),
|
|
replace: jest.fn(),
|
|
back: jest.fn(),
|
|
})),
|
|
useLocalSearchParams: jest.fn(() => ({})),
|
|
usePathname: jest.fn(() => '/'),
|
|
useSegments: jest.fn(() => []),
|
|
Stack: {
|
|
Screen: jest.fn(() => null),
|
|
},
|
|
Tabs: {
|
|
Screen: jest.fn(() => null),
|
|
},
|
|
Link: jest.fn(() => null),
|
|
}));
|
|
|
|
// Mock @react-native-async-storage/async-storage
|
|
jest.mock('@react-native-async-storage/async-storage', () => ({
|
|
default: {
|
|
getItem: jest.fn(() => Promise.resolve(null)),
|
|
setItem: jest.fn(() => Promise.resolve()),
|
|
removeItem: jest.fn(() => Promise.resolve()),
|
|
clear: jest.fn(() => Promise.resolve()),
|
|
getAllKeys: jest.fn(() => Promise.resolve([])),
|
|
},
|
|
}));
|
|
|
|
// Mock react-native-reanimated
|
|
jest.mock('react-native-reanimated', () => {
|
|
const Reanimated = require('react-native-reanimated/mock');
|
|
Reanimated.default.call = () => {};
|
|
return Reanimated;
|
|
});
|
|
|
|
// Mock @react-native-community/netinfo
|
|
jest.mock('@react-native-community/netinfo', () => ({
|
|
addEventListener: jest.fn(() => jest.fn()),
|
|
fetch: jest.fn(() => Promise.resolve({ isConnected: true })),
|
|
}));
|
|
|
|
// Global fetch mock
|
|
global.fetch = jest.fn(() =>
|
|
Promise.resolve({
|
|
json: () => Promise.resolve({}),
|
|
ok: true,
|
|
status: 200,
|
|
})
|
|
);
|
|
|
|
// Console error suppression for known issues
|
|
const originalError = console.error;
|
|
console.error = (...args) => {
|
|
if (
|
|
typeof args[0] === 'string' &&
|
|
(args[0].includes('Warning: ReactDOM.render') ||
|
|
args[0].includes('Warning: An update to'))
|
|
) {
|
|
return;
|
|
}
|
|
originalError.call(console, ...args);
|
|
};
|