-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathjest.setup.js
More file actions
35 lines (34 loc) · 1.1 KB
/
Copy pathjest.setup.js
File metadata and controls
35 lines (34 loc) · 1.1 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
// jest.setup.js — global test setup
// Use a simple inline mock for AsyncStorage since the jest mock file
// is not shipped in all versions of the package.
jest.mock('@react-native-async-storage/async-storage', () => {
const store = {};
const AsyncStorageMock = {
getItem: jest.fn((key) => Promise.resolve(store[key] ?? null)),
setItem: jest.fn((key, value) => {
store[key] = value;
return Promise.resolve();
}),
removeItem: jest.fn((key) => {
delete store[key];
return Promise.resolve();
}),
clear: jest.fn(() => {
Object.keys(store).forEach((k) => delete store[k]);
return Promise.resolve();
}),
getAllKeys: jest.fn(() => Promise.resolve(Object.keys(store))),
multiGet: jest.fn((keys) =>
Promise.resolve(keys.map((k) => [k, store[k] ?? null])),
),
multiSet: jest.fn((pairs) => {
pairs.forEach(([k, v]) => { store[k] = v; });
return Promise.resolve();
}),
multiRemove: jest.fn((keys) => {
keys.forEach((k) => delete store[k]);
return Promise.resolve();
}),
};
return AsyncStorageMock;
});