@toast-studios/asset-manager
Version:
A React Native asset management library with intelligent caching and loading strategies
72 lines (71 loc) • 2.51 kB
JavaScript
;
// Mock React Native dependencies
jest.mock('react-native-fs', () => ({
DocumentDirectoryPath: '/mock/documents',
CachesDirectoryPath: '/mock/caches',
exists: jest.fn(() => Promise.resolve(false)),
readDir: jest.fn(() => Promise.resolve([])),
stat: jest.fn(() => Promise.resolve({ size: 0 })),
mkdir: jest.fn(() => Promise.resolve()),
writeFile: jest.fn(() => Promise.resolve()),
readFile: jest.fn(() => Promise.resolve('')),
unlink: jest.fn(() => Promise.resolve()),
downloadFile: jest.fn(() => ({
jobId: 1,
promise: Promise.resolve({ statusCode: 200 }),
})),
stopDownload: jest.fn(),
getFSInfo: jest.fn(() => Promise.resolve({
totalSpace: 1000000000,
freeSpace: 500000000,
})),
}));
jest.mock('@react-native-community/netinfo', () => ({
addEventListener: jest.fn(() => jest.fn()),
fetch: jest.fn(() => Promise.resolve({
type: 'wifi',
isConnected: true,
isInternetReachable: true,
details: {
effectiveType: '4g',
},
})),
}));
jest.mock('react-native-device-info', () => ({
getTotalMemory: jest.fn(() => Promise.resolve(4000000000)),
getUsedMemory: jest.fn(() => Promise.resolve(2000000000)),
getBatteryLevel: jest.fn(() => Promise.resolve(0.8)),
getThermalState: jest.fn(() => Promise.resolve('nominal')),
getDeviceType: jest.fn(() => 'Handset'),
isLowRamDevice: jest.fn(() => Promise.resolve(false)),
isTablet: jest.fn(() => Promise.resolve(false)),
getSystemName: jest.fn(() => Promise.resolve('iOS')),
getCpuCount: jest.fn(() => Promise.resolve(4)),
}));
jest.mock('@react-native-async-storage/async-storage', () => ({
getItem: jest.fn(() => Promise.resolve(null)),
setItem: jest.fn(() => Promise.resolve()),
removeItem: jest.fn(() => Promise.resolve()),
clear: jest.fn(() => Promise.resolve()),
}));
// react-native-zip-archive mock removed as it's no longer used
// Global test utilities
global.fetch = jest.fn(() => Promise.resolve({
ok: true,
status: 200,
json: () => Promise.resolve({}),
text: () => Promise.resolve(''),
}));
// Suppress console logs during tests unless debugging
global.console = {
...console,
log: jest.fn(),
warn: jest.fn(),
error: jest.fn(),
};
// Dummy test to prevent Jest from complaining about empty test suite
describe('Setup', () => {
it('should setup test environment', () => {
expect(true).toBe(true);
});
});