Skip to content

Commit 813df40

Browse files
author
Krzysztof Borowy
committed
fix: make mock typeless, commonjs module
1 parent b64c9cc commit 813df40

File tree

1 file changed

+33
-50
lines changed

1 file changed

+33
-50
lines changed

jest/async-storage-mock.js

Lines changed: 33 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -1,66 +1,52 @@
11
/**
22
* @format
3-
* @flow
43
*/
54

6-
type KeysType = Array<string>;
7-
type KeyValueType = Array<Array<*>>;
8-
type CallbackType = ((?Error) => void) | void;
9-
type ItemGetCallbackType = ((?Error, ?string) => void) | void;
10-
type ResultCallbackType = ((?Error, ?KeyValueType) => void) | void;
11-
125
const asMock = {
136
__INTERNAL_MOCK_STORAGE__: {},
147

15-
setItem: jest.fn<[string, string, CallbackType], Promise<*>>(
16-
async (key: string, value: string, callback: CallbackType) => {
17-
const setResult = await asMock.multiSet([[key, value]], undefined);
8+
setItem: jest.fn(async (key, value, callback) => {
9+
const setResult = await asMock.multiSet([[key, value]], undefined);
1810

19-
callback && callback(setResult);
20-
return setResult;
21-
},
22-
),
23-
getItem: jest.fn<[string, ItemGetCallbackType], Promise<*>>(
24-
async (key: string, callback: ItemGetCallbackType) => {
25-
const getResult = await asMock.multiGet([key], undefined);
11+
callback && callback(setResult);
12+
return setResult;
13+
}),
2614

27-
const result = getResult[0] ? getResult[0][1] : null;
15+
getItem: jest.fn(async (key, callback) => {
16+
const getResult = await asMock.multiGet([key], undefined);
2817

29-
callback && callback(null, result);
30-
return result;
31-
},
32-
),
33-
removeItem: jest.fn<[string, CallbackType], Promise<null>>(
34-
(key: string, callback: CallbackType) =>
35-
asMock.multiRemove([key], callback),
36-
),
37-
mergeItem: jest.fn<[string, string, CallbackType], Promise<*>>(
38-
(key: string, value: string, callback: CallbackType) =>
39-
asMock.multiMerge([[key, value]], callback),
18+
const result = getResult[0] ? getResult[0][1] : null;
19+
20+
callback && callback(null, result);
21+
return result;
22+
}),
23+
24+
removeItem: jest.fn((key, callback) => asMock.multiRemove([key], callback)),
25+
mergeItem: jest.fn((key, value, callback) =>
26+
asMock.multiMerge([[key, value]], callback),
4027
),
4128

42-
clear: jest.fn<[CallbackType], Promise<*>>(_clear),
43-
getAllKeys: jest.fn<[], Promise<string[]>>(_getAllKeys),
44-
flushGetRequests: jest.fn<[], void>(),
29+
clear: jest.fn(_clear),
30+
getAllKeys: jest.fn(_getAllKeys),
31+
flushGetRequests: jest.fn(),
4532

46-
multiGet: jest.fn<[KeysType, ResultCallbackType], Promise<*>>(_multiGet),
47-
multiSet: jest.fn<[KeyValueType, CallbackType], Promise<*>>(_multiSet),
48-
multiRemove: jest.fn<[KeysType, CallbackType], Promise<*>>(_multiRemove),
49-
multiMerge: jest.fn<[KeyValueType, CallbackType], Promise<*>>(_multiMerge),
33+
multiGet: jest.fn(_multiGet),
34+
multiSet: jest.fn(_multiSet),
35+
multiRemove: jest.fn(_multiRemove),
36+
multiMerge: jest.fn(_multiMerge),
5037
};
5138

52-
async function _multiSet(keyValuePairs: KeyValueType, callback: CallbackType) {
39+
async function _multiSet(keyValuePairs, callback) {
5340
keyValuePairs.forEach(keyValue => {
5441
const key = keyValue[0];
55-
const value = keyValue[1];
5642

57-
asMock.__INTERNAL_MOCK_STORAGE__[key] = value;
43+
asMock.__INTERNAL_MOCK_STORAGE__[key] = keyValue[1];
5844
});
5945
callback && callback(null);
6046
return null;
6147
}
6248

63-
async function _multiGet(keys: KeysType, callback: ResultCallbackType) {
49+
async function _multiGet(keys, callback) {
6450
const values = keys.map(key => [
6551
key,
6652
asMock.__INTERNAL_MOCK_STORAGE__[key] || null,
@@ -70,7 +56,7 @@ async function _multiGet(keys: KeysType, callback: ResultCallbackType) {
7056
return values;
7157
}
7258

73-
async function _multiRemove(keys: KeysType, callback: CallbackType) {
59+
async function _multiRemove(keys, callback) {
7460
keys.forEach(key => {
7561
if (asMock.__INTERNAL_MOCK_STORAGE__[key]) {
7662
delete asMock.__INTERNAL_MOCK_STORAGE__[key];
@@ -81,7 +67,7 @@ async function _multiRemove(keys: KeysType, callback: CallbackType) {
8167
return null;
8268
}
8369

84-
async function _clear(callback: CallbackType) {
70+
async function _clear(callback) {
8571
asMock.__INTERNAL_MOCK_STORAGE__ = {};
8672

8773
callback && callback(null);
@@ -93,19 +79,16 @@ async function _getAllKeys() {
9379
return Object.keys(asMock.__INTERNAL_MOCK_STORAGE__);
9480
}
9581

96-
async function _multiMerge(
97-
keyValuePairs: KeyValueType,
98-
callback: CallbackType,
99-
) {
82+
async function _multiMerge(keyValuePairs, callback) {
10083
keyValuePairs.forEach(keyValue => {
10184
const key = keyValue[0];
10285
const value = JSON.parse(keyValue[1]);
10386

10487
const oldValue = JSON.parse(asMock.__INTERNAL_MOCK_STORAGE__[key]);
10588

106-
const processedValue = JSON.stringify(_deepMergeInto(oldValue, value));
107-
108-
asMock.__INTERNAL_MOCK_STORAGE__[key] = processedValue;
89+
asMock.__INTERNAL_MOCK_STORAGE__[key] = JSON.stringify(
90+
_deepMergeInto(oldValue, value),
91+
);
10992
});
11093

11194
callback && callback(null);
@@ -131,4 +114,4 @@ const _deepMergeInto = (oldObject, newObject) => {
131114
return mergedObject;
132115
};
133116

134-
export default asMock;
117+
module.exports = asMock;

0 commit comments

Comments
 (0)