react-native-permissions
Version:
An unified permissions API for React Native on iOS, Android and Windows
77 lines (76 loc) • 2.43 kB
JavaScript
;
import { PERMISSIONS as PERMISSIONS_ANDROID } from "../permissions.android.js";
import { PERMISSIONS as PERMISSIONS_IOS } from "../permissions.ios.js";
import { PERMISSIONS as PERMISSIONS_WINDOWS } from "../permissions.windows.js";
import { RESULTS } from "../results.js";
export { RESULTS } from "../results.js";
export const PERMISSIONS = {
ANDROID: PERMISSIONS_ANDROID.ANDROID,
IOS: PERMISSIONS_IOS.IOS,
WINDOWS: PERMISSIONS_WINDOWS.WINDOWS
};
export const canScheduleExactAlarms = jest.fn(async () => true);
export const canUseFullScreenIntent = jest.fn(async () => true);
export const check = jest.fn(async () => RESULTS.GRANTED);
export const checkLocationAccuracy = jest.fn(async () => 'full');
export const openPhotoPicker = jest.fn(async () => {});
export const openSettings = jest.fn(async () => {});
export const request = jest.fn(async () => RESULTS.GRANTED);
export const requestLocationAccuracy = jest.fn(async () => 'full');
const notificationOptions = new Set(['alert', 'badge', 'sound', 'carPlay', 'criticalAlert', 'provisional', 'providesAppSettings']);
const notificationSettings = {
alert: true,
badge: true,
sound: true,
carPlay: true,
criticalAlert: true,
provisional: true,
providesAppSettings: 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.has(option)).reduce((acc, option) => ({
...acc,
[option]: true
}), {
lockScreen: true,
notificationCenter: true
})
}));
export const checkMultiple = jest.fn(async permissions => {
const output = {};
for (const permission of permissions) {
output[permission] = RESULTS.GRANTED;
}
return output;
});
export const requestMultiple = jest.fn(async permissions => {
const output = {};
for (const permission of permissions) {
output[permission] = RESULTS.GRANTED;
}
return output;
});
export default {
PERMISSIONS,
RESULTS,
canScheduleExactAlarms,
canUseFullScreenIntent,
check,
checkLocationAccuracy,
checkMultiple,
checkNotifications,
openPhotoPicker,
openSettings,
request,
requestLocationAccuracy,
requestMultiple,
requestNotifications
};
//# sourceMappingURL=mock.js.map