forked from sohail-dragon/react-native-permissions
-
Notifications
You must be signed in to change notification settings - Fork 0
/
mock.js
66 lines (58 loc) · 1.52 KB
/
mock.js
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
const {PERMISSIONS, RESULTS} = require('./lib/commonjs/constants');
export {PERMISSIONS, RESULTS};
export const openSettings = jest.fn(async () => {});
export const check = jest.fn(async (permission) => RESULTS.GRANTED);
export const request = jest.fn(async (permission) => RESULTS.GRANTED);
const notificationOptions = [
'alert',
'badge',
'sound',
'criticalAlert',
'carPlay',
// 'provisional', // excluded as it's not included in NotificationSettings
];
const notificationSettings = {
alert: true,
badge: true,
sound: true,
carPlay: true,
criticalAlert: true,
lockScreen: true,
notificationCenter: true,
};
export const checkNotifications = jest.fn(async () => ({
status: RESULTS.GRANTED,
settings: notificationSettings,
}));
export const requestNotifications = jest.fn(async (options) => ({
status: RESULTS.GRANTED,
settings: options
.filter((option) => notificationOptions.includes(option))
.reduce((acc, option) => ({...acc, [option]: true}), {
lockScreen: true,
notificationCenter: true,
}),
}));
export const checkMultiple = jest.fn(async (permissions) =>
permissions.reduce((acc, permission) => ({
...acc,
[permission]: RESULTS.GRANTED,
})),
);
export const requestMultiple = jest.fn(async (permissions) =>
permissions.reduce((acc, permission) => ({
...acc,
[permission]: RESULTS.GRANTED,
})),
);
export default {
PERMISSIONS,
RESULTS,
openSettings,
check,
request,
checkNotifications,
requestNotifications,
checkMultiple,
requestMultiple,
};