@bugpulse/react-native 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +185 -0
- package/dist/AnnotationCanvas.d.ts +11 -0
- package/dist/AnnotationCanvas.d.ts.map +1 -0
- package/dist/AnnotationCanvas.js +154 -0
- package/dist/AnnotationCanvas.js.map +1 -0
- package/dist/BugReportModal.d.ts +15 -0
- package/dist/BugReportModal.d.ts.map +1 -0
- package/dist/BugReportModal.js +303 -0
- package/dist/BugReportModal.js.map +1 -0
- package/dist/BugReportProvider.d.ts +19 -0
- package/dist/BugReportProvider.d.ts.map +1 -0
- package/dist/BugReportProvider.js +103 -0
- package/dist/BugReportProvider.js.map +1 -0
- package/dist/DeviceInfo.d.ts +3 -0
- package/dist/DeviceInfo.d.ts.map +1 -0
- package/dist/DeviceInfo.js +63 -0
- package/dist/DeviceInfo.js.map +1 -0
- package/dist/ErrorBoundary.d.ts +19 -0
- package/dist/ErrorBoundary.d.ts.map +1 -0
- package/dist/ErrorBoundary.js +79 -0
- package/dist/ErrorBoundary.js.map +1 -0
- package/dist/NavigationTracker.d.ts +7 -0
- package/dist/NavigationTracker.d.ts.map +1 -0
- package/dist/NavigationTracker.js +61 -0
- package/dist/NavigationTracker.js.map +1 -0
- package/dist/RingBuffer.d.ts +10 -0
- package/dist/RingBuffer.d.ts.map +1 -0
- package/dist/RingBuffer.js +26 -0
- package/dist/RingBuffer.js.map +1 -0
- package/dist/ScreenCapture.d.ts +3 -0
- package/dist/ScreenCapture.d.ts.map +1 -0
- package/dist/ScreenCapture.js +20 -0
- package/dist/ScreenCapture.js.map +1 -0
- package/dist/ShakeDetector.d.ts +5 -0
- package/dist/ShakeDetector.d.ts.map +1 -0
- package/dist/ShakeDetector.js +44 -0
- package/dist/ShakeDetector.js.map +1 -0
- package/dist/StateCapture.d.ts +13 -0
- package/dist/StateCapture.d.ts.map +1 -0
- package/dist/StateCapture.js +74 -0
- package/dist/StateCapture.js.map +1 -0
- package/dist/__tests__/DeviceInfo.test.d.ts +2 -0
- package/dist/__tests__/DeviceInfo.test.d.ts.map +1 -0
- package/dist/__tests__/DeviceInfo.test.js +63 -0
- package/dist/__tests__/DeviceInfo.test.js.map +1 -0
- package/dist/__tests__/ErrorBoundary.test.d.ts +2 -0
- package/dist/__tests__/ErrorBoundary.test.d.ts.map +1 -0
- package/dist/__tests__/ErrorBoundary.test.js +64 -0
- package/dist/__tests__/ErrorBoundary.test.js.map +1 -0
- package/dist/__tests__/NavigationTracker.test.d.ts +2 -0
- package/dist/__tests__/NavigationTracker.test.d.ts.map +1 -0
- package/dist/__tests__/NavigationTracker.test.js +54 -0
- package/dist/__tests__/NavigationTracker.test.js.map +1 -0
- package/dist/__tests__/RingBuffer.test.d.ts +2 -0
- package/dist/__tests__/RingBuffer.test.d.ts.map +1 -0
- package/dist/__tests__/RingBuffer.test.js +43 -0
- package/dist/__tests__/RingBuffer.test.js.map +1 -0
- package/dist/__tests__/ScreenCapture.test.d.ts +2 -0
- package/dist/__tests__/ScreenCapture.test.d.ts.map +1 -0
- package/dist/__tests__/ScreenCapture.test.js +27 -0
- package/dist/__tests__/ScreenCapture.test.js.map +1 -0
- package/dist/__tests__/ShakeDetector.test.d.ts +2 -0
- package/dist/__tests__/ShakeDetector.test.d.ts.map +1 -0
- package/dist/__tests__/ShakeDetector.test.js +65 -0
- package/dist/__tests__/ShakeDetector.test.js.map +1 -0
- package/dist/__tests__/StateCapture.test.d.ts +2 -0
- package/dist/__tests__/StateCapture.test.d.ts.map +1 -0
- package/dist/__tests__/StateCapture.test.js +128 -0
- package/dist/__tests__/StateCapture.test.js.map +1 -0
- package/dist/__tests__/__mocks__/expo-clipboard.d.ts +3 -0
- package/dist/__tests__/__mocks__/expo-clipboard.d.ts.map +1 -0
- package/dist/__tests__/__mocks__/expo-clipboard.js +6 -0
- package/dist/__tests__/__mocks__/expo-clipboard.js.map +1 -0
- package/dist/__tests__/__mocks__/expo-constants.d.ts +17 -0
- package/dist/__tests__/__mocks__/expo-constants.d.ts.map +1 -0
- package/dist/__tests__/__mocks__/expo-constants.js +8 -0
- package/dist/__tests__/__mocks__/expo-constants.js.map +1 -0
- package/dist/__tests__/__mocks__/expo-device.d.ts +2 -0
- package/dist/__tests__/__mocks__/expo-device.d.ts.map +1 -0
- package/dist/__tests__/__mocks__/expo-device.js +5 -0
- package/dist/__tests__/__mocks__/expo-device.js.map +1 -0
- package/dist/__tests__/__mocks__/expo-file-system-legacy.d.ts +8 -0
- package/dist/__tests__/__mocks__/expo-file-system-legacy.d.ts.map +1 -0
- package/dist/__tests__/__mocks__/expo-file-system-legacy.js +10 -0
- package/dist/__tests__/__mocks__/expo-file-system-legacy.js.map +1 -0
- package/dist/__tests__/__mocks__/expo-localization.d.ts +6 -0
- package/dist/__tests__/__mocks__/expo-localization.d.ts.map +1 -0
- package/dist/__tests__/__mocks__/expo-localization.js +7 -0
- package/dist/__tests__/__mocks__/expo-localization.js.map +1 -0
- package/dist/__tests__/__mocks__/expo-router.d.ts +5 -0
- package/dist/__tests__/__mocks__/expo-router.d.ts.map +1 -0
- package/dist/__tests__/__mocks__/expo-router.js +16 -0
- package/dist/__tests__/__mocks__/expo-router.js.map +1 -0
- package/dist/__tests__/__mocks__/expo-sensors.d.ts +17 -0
- package/dist/__tests__/__mocks__/expo-sensors.d.ts.map +1 -0
- package/dist/__tests__/__mocks__/expo-sensors.js +22 -0
- package/dist/__tests__/__mocks__/expo-sensors.js.map +1 -0
- package/dist/__tests__/__mocks__/react-native-gesture-handler.d.ts +11 -0
- package/dist/__tests__/__mocks__/react-native-gesture-handler.d.ts.map +1 -0
- package/dist/__tests__/__mocks__/react-native-gesture-handler.js +14 -0
- package/dist/__tests__/__mocks__/react-native-gesture-handler.js.map +1 -0
- package/dist/__tests__/__mocks__/react-native-svg.d.ts +4 -0
- package/dist/__tests__/__mocks__/react-native-svg.d.ts.map +1 -0
- package/dist/__tests__/__mocks__/react-native-svg.js +7 -0
- package/dist/__tests__/__mocks__/react-native-svg.js.map +1 -0
- package/dist/__tests__/__mocks__/react-native-view-shot.d.ts +2 -0
- package/dist/__tests__/__mocks__/react-native-view-shot.d.ts.map +1 -0
- package/dist/__tests__/__mocks__/react-native-view-shot.js +5 -0
- package/dist/__tests__/__mocks__/react-native-view-shot.js.map +1 -0
- package/dist/__tests__/__mocks__/react-native.d.ts +20 -0
- package/dist/__tests__/__mocks__/react-native.d.ts.map +1 -0
- package/dist/__tests__/__mocks__/react-native.js +14 -0
- package/dist/__tests__/__mocks__/react-native.js.map +1 -0
- package/dist/__tests__/fileToBase64.test.d.ts +2 -0
- package/dist/__tests__/fileToBase64.test.d.ts.map +1 -0
- package/dist/__tests__/fileToBase64.test.js +21 -0
- package/dist/__tests__/fileToBase64.test.js.map +1 -0
- package/dist/__tests__/integrations/slack.test.d.ts +2 -0
- package/dist/__tests__/integrations/slack.test.d.ts.map +1 -0
- package/dist/__tests__/integrations/slack.test.js +123 -0
- package/dist/__tests__/integrations/slack.test.js.map +1 -0
- package/dist/__tests__/integrations/webhook.test.d.ts +2 -0
- package/dist/__tests__/integrations/webhook.test.d.ts.map +1 -0
- package/dist/__tests__/integrations/webhook.test.js +98 -0
- package/dist/__tests__/integrations/webhook.test.js.map +1 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +18 -0
- package/dist/index.js.map +1 -0
- package/dist/integrations/index.d.ts +4 -0
- package/dist/integrations/index.d.ts.map +1 -0
- package/dist/integrations/index.js +8 -0
- package/dist/integrations/index.js.map +1 -0
- package/dist/integrations/slack.d.ts +9 -0
- package/dist/integrations/slack.d.ts.map +1 -0
- package/dist/integrations/slack.js +136 -0
- package/dist/integrations/slack.js.map +1 -0
- package/dist/integrations/types.d.ts +53 -0
- package/dist/integrations/types.d.ts.map +1 -0
- package/dist/integrations/types.js +3 -0
- package/dist/integrations/types.js.map +1 -0
- package/dist/integrations/webhook.d.ts +8 -0
- package/dist/integrations/webhook.d.ts.map +1 -0
- package/dist/integrations/webhook.js +45 -0
- package/dist/integrations/webhook.js.map +1 -0
- package/dist/utils/fileToBase64.d.ts +2 -0
- package/dist/utils/fileToBase64.d.ts.map +1 -0
- package/dist/utils/fileToBase64.js +11 -0
- package/dist/utils/fileToBase64.js.map +1 -0
- package/package.json +77 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ScreenCapture.test.js","sourceRoot":"","sources":["../../src/__tests__/ScreenCapture.test.ts"],"names":[],"mappings":";;AAAA,oDAAqD;AACrD,mEAAoD;AAEpD,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;IACjC,UAAU,CAAC,GAAG,EAAE;QACd,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wBAAwB,EAAE,KAAK,IAAI,EAAE;QACtC,MAAM,GAAG,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;QAC5B,MAAM,MAAM,GAAG,MAAM,IAAA,iCAAiB,EAAC,GAAU,CAAC,CAAC;QACnD,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;QAClD,MAAM,CAAC,mCAAU,CAAC,CAAC,oBAAoB,CAAC,GAAG,EAAE;YAC3C,MAAM,EAAE,KAAK;YACb,OAAO,EAAE,GAAG;YACZ,KAAK,EAAE,GAAG;YACV,MAAM,EAAE,SAAS;SAClB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iCAAiC,EAAE,KAAK,IAAI,EAAE;QAC9C,mCAAwB,CAAC,qBAAqB,CAAC,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC;QAC5E,MAAM,GAAG,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;QAC5B,MAAM,MAAM,GAAG,MAAM,IAAA,iCAAiB,EAAC,GAAU,CAAC,CAAC;QACnD,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC;IAC5B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ShakeDetector.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/ShakeDetector.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const react_native_1 = require("@testing-library/react-native");
|
|
4
|
+
const ShakeDetector_1 = require("../ShakeDetector");
|
|
5
|
+
const expo_sensors_1 = require("expo-sensors");
|
|
6
|
+
describe('useShakeDetector', () => {
|
|
7
|
+
beforeEach(() => {
|
|
8
|
+
jest.clearAllMocks();
|
|
9
|
+
expo_sensors_1.Accelerometer._reset();
|
|
10
|
+
jest.useFakeTimers();
|
|
11
|
+
});
|
|
12
|
+
afterEach(() => {
|
|
13
|
+
jest.useRealTimers();
|
|
14
|
+
});
|
|
15
|
+
it('sets up accelerometer subscription when enabled', () => {
|
|
16
|
+
const onShake = jest.fn();
|
|
17
|
+
(0, react_native_1.renderHook)(() => (0, ShakeDetector_1.useShakeDetector)(onShake, { enabled: true }));
|
|
18
|
+
expect(expo_sensors_1.Accelerometer.setUpdateInterval).toHaveBeenCalledWith(100);
|
|
19
|
+
expect(expo_sensors_1.Accelerometer.addListener).toHaveBeenCalled();
|
|
20
|
+
});
|
|
21
|
+
it('does not subscribe when disabled', () => {
|
|
22
|
+
const onShake = jest.fn();
|
|
23
|
+
(0, react_native_1.renderHook)(() => (0, ShakeDetector_1.useShakeDetector)(onShake, { enabled: false }));
|
|
24
|
+
expect(expo_sensors_1.Accelerometer.addListener).not.toHaveBeenCalled();
|
|
25
|
+
});
|
|
26
|
+
it('ignores acceleration below threshold', () => {
|
|
27
|
+
const onShake = jest.fn();
|
|
28
|
+
(0, react_native_1.renderHook)(() => (0, ShakeDetector_1.useShakeDetector)(onShake, { threshold: 1.8 }));
|
|
29
|
+
expo_sensors_1.Accelerometer._simulateData({ x: 0.5, y: 0.5, z: 0.5 });
|
|
30
|
+
expect(onShake).not.toHaveBeenCalled();
|
|
31
|
+
});
|
|
32
|
+
it('triggers onShake after 3 shakes within window', () => {
|
|
33
|
+
const onShake = jest.fn();
|
|
34
|
+
(0, react_native_1.renderHook)(() => (0, ShakeDetector_1.useShakeDetector)(onShake, { threshold: 1.8 }));
|
|
35
|
+
const strongShake = { x: 2.0, y: 2.0, z: 2.0 };
|
|
36
|
+
expo_sensors_1.Accelerometer._simulateData(strongShake);
|
|
37
|
+
expo_sensors_1.Accelerometer._simulateData(strongShake);
|
|
38
|
+
expo_sensors_1.Accelerometer._simulateData(strongShake);
|
|
39
|
+
expect(onShake).toHaveBeenCalledTimes(1);
|
|
40
|
+
});
|
|
41
|
+
it('respects cooldown period', () => {
|
|
42
|
+
const onShake = jest.fn();
|
|
43
|
+
(0, react_native_1.renderHook)(() => (0, ShakeDetector_1.useShakeDetector)(onShake, { threshold: 1.8 }));
|
|
44
|
+
const strongShake = { x: 2.0, y: 2.0, z: 2.0 };
|
|
45
|
+
// First shake sequence
|
|
46
|
+
expo_sensors_1.Accelerometer._simulateData(strongShake);
|
|
47
|
+
expo_sensors_1.Accelerometer._simulateData(strongShake);
|
|
48
|
+
expo_sensors_1.Accelerometer._simulateData(strongShake);
|
|
49
|
+
expect(onShake).toHaveBeenCalledTimes(1);
|
|
50
|
+
// Immediately try again (within cooldown)
|
|
51
|
+
expo_sensors_1.Accelerometer._simulateData(strongShake);
|
|
52
|
+
expo_sensors_1.Accelerometer._simulateData(strongShake);
|
|
53
|
+
expo_sensors_1.Accelerometer._simulateData(strongShake);
|
|
54
|
+
expect(onShake).toHaveBeenCalledTimes(1);
|
|
55
|
+
});
|
|
56
|
+
it('cleans up subscription on unmount', () => {
|
|
57
|
+
const onShake = jest.fn();
|
|
58
|
+
const removeMock = jest.fn();
|
|
59
|
+
expo_sensors_1.Accelerometer.addListener.mockReturnValue({ remove: removeMock });
|
|
60
|
+
const { unmount } = (0, react_native_1.renderHook)(() => (0, ShakeDetector_1.useShakeDetector)(onShake));
|
|
61
|
+
unmount();
|
|
62
|
+
expect(removeMock).toHaveBeenCalled();
|
|
63
|
+
});
|
|
64
|
+
});
|
|
65
|
+
//# sourceMappingURL=ShakeDetector.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ShakeDetector.test.js","sourceRoot":"","sources":["../../src/__tests__/ShakeDetector.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StateCapture.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/StateCapture.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const StateCapture_1 = require("../StateCapture");
|
|
4
|
+
function createMockStore(initialState) {
|
|
5
|
+
let state = initialState;
|
|
6
|
+
const listeners = new Set();
|
|
7
|
+
return {
|
|
8
|
+
getState: () => state,
|
|
9
|
+
subscribe: (listener) => {
|
|
10
|
+
listeners.add(listener);
|
|
11
|
+
return () => listeners.delete(listener);
|
|
12
|
+
},
|
|
13
|
+
setState: (newState) => {
|
|
14
|
+
state = newState;
|
|
15
|
+
listeners.forEach((l) => l());
|
|
16
|
+
},
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
describe('StateCapture', () => {
|
|
20
|
+
afterEach(() => {
|
|
21
|
+
(0, StateCapture_1.resetAllStores)();
|
|
22
|
+
});
|
|
23
|
+
it('records state changes to ring buffer', () => {
|
|
24
|
+
const store = createMockStore({ count: 0 });
|
|
25
|
+
(0, StateCapture_1.trackStore)(store, { name: 'counter' });
|
|
26
|
+
store.setState({ count: 1 });
|
|
27
|
+
store.setState({ count: 2 });
|
|
28
|
+
(0, StateCapture_1.freezeStateSnapshot)();
|
|
29
|
+
const snapshots = (0, StateCapture_1.getStateSnapshot)();
|
|
30
|
+
expect(snapshots).toHaveLength(2);
|
|
31
|
+
expect(snapshots[0].name).toBe('counter');
|
|
32
|
+
expect(JSON.parse(snapshots[0].state)).toEqual({ count: 1 });
|
|
33
|
+
expect(JSON.parse(snapshots[1].state)).toEqual({ count: 2 });
|
|
34
|
+
});
|
|
35
|
+
it('evicts oldest when buffer is full (N=10)', () => {
|
|
36
|
+
const store = createMockStore({ v: 0 });
|
|
37
|
+
(0, StateCapture_1.trackStore)(store, { name: 'test' });
|
|
38
|
+
for (let i = 1; i <= 11; i++) {
|
|
39
|
+
store.setState({ v: i });
|
|
40
|
+
}
|
|
41
|
+
(0, StateCapture_1.freezeStateSnapshot)();
|
|
42
|
+
const snapshots = (0, StateCapture_1.getStateSnapshot)();
|
|
43
|
+
expect(snapshots).toHaveLength(10);
|
|
44
|
+
expect(JSON.parse(snapshots[0].state)).toEqual({ v: 2 });
|
|
45
|
+
expect(JSON.parse(snapshots[9].state)).toEqual({ v: 11 });
|
|
46
|
+
});
|
|
47
|
+
it('truncates snapshots exceeding 50KB', () => {
|
|
48
|
+
const store = createMockStore({});
|
|
49
|
+
(0, StateCapture_1.trackStore)(store, { name: 'big' });
|
|
50
|
+
const bigState = { data: 'x'.repeat(60 * 1024) };
|
|
51
|
+
store.setState(bigState);
|
|
52
|
+
(0, StateCapture_1.freezeStateSnapshot)();
|
|
53
|
+
const snapshots = (0, StateCapture_1.getStateSnapshot)();
|
|
54
|
+
expect(snapshots).toHaveLength(1);
|
|
55
|
+
expect(snapshots[0].truncated).toBe(true);
|
|
56
|
+
expect(snapshots[0].state).toContain('STATE TOO LARGE');
|
|
57
|
+
// Truncated state should still be valid JSON
|
|
58
|
+
expect(() => JSON.parse(snapshots[0].state)).not.toThrow();
|
|
59
|
+
});
|
|
60
|
+
it('tracks multiple named stores', () => {
|
|
61
|
+
const store1 = createMockStore({ a: 1 });
|
|
62
|
+
const store2 = createMockStore({ b: 2 });
|
|
63
|
+
(0, StateCapture_1.trackStore)(store1, { name: 'store1' });
|
|
64
|
+
(0, StateCapture_1.trackStore)(store2, { name: 'store2' });
|
|
65
|
+
store1.setState({ a: 10 });
|
|
66
|
+
store2.setState({ b: 20 });
|
|
67
|
+
(0, StateCapture_1.freezeStateSnapshot)();
|
|
68
|
+
const snapshots = (0, StateCapture_1.getStateSnapshot)();
|
|
69
|
+
expect(snapshots).toHaveLength(2);
|
|
70
|
+
const names = snapshots.map((s) => s.name);
|
|
71
|
+
expect(names).toContain('store1');
|
|
72
|
+
expect(names).toContain('store2');
|
|
73
|
+
});
|
|
74
|
+
it('untrackStore removes subscription', () => {
|
|
75
|
+
const store = createMockStore({ x: 0 });
|
|
76
|
+
(0, StateCapture_1.trackStore)(store, { name: 'temp' });
|
|
77
|
+
store.setState({ x: 1 });
|
|
78
|
+
// Freeze before untracking to capture the one change
|
|
79
|
+
(0, StateCapture_1.freezeStateSnapshot)();
|
|
80
|
+
const beforeUntrack = (0, StateCapture_1.getStateSnapshot)();
|
|
81
|
+
expect(beforeUntrack).toHaveLength(1);
|
|
82
|
+
expect(JSON.parse(beforeUntrack[0].state)).toEqual({ x: 1 });
|
|
83
|
+
// After untracking, new state changes should not be recorded
|
|
84
|
+
(0, StateCapture_1.clearStateCapture)();
|
|
85
|
+
(0, StateCapture_1.untrackStore)('temp');
|
|
86
|
+
store.setState({ x: 2 });
|
|
87
|
+
(0, StateCapture_1.freezeStateSnapshot)();
|
|
88
|
+
const afterUntrack = (0, StateCapture_1.getStateSnapshot)();
|
|
89
|
+
expect(afterUntrack).toHaveLength(0);
|
|
90
|
+
});
|
|
91
|
+
it('freezeStateSnapshot creates independent copy', () => {
|
|
92
|
+
const store = createMockStore({ v: 0 });
|
|
93
|
+
(0, StateCapture_1.trackStore)(store, { name: 'test' });
|
|
94
|
+
store.setState({ v: 1 });
|
|
95
|
+
(0, StateCapture_1.freezeStateSnapshot)();
|
|
96
|
+
store.setState({ v: 2 });
|
|
97
|
+
const frozen = (0, StateCapture_1.getStateSnapshot)();
|
|
98
|
+
expect(frozen).toHaveLength(1);
|
|
99
|
+
expect(JSON.parse(frozen[0].state)).toEqual({ v: 1 });
|
|
100
|
+
});
|
|
101
|
+
it('returns empty array when nothing tracked', () => {
|
|
102
|
+
(0, StateCapture_1.freezeStateSnapshot)();
|
|
103
|
+
expect((0, StateCapture_1.getStateSnapshot)()).toEqual([]);
|
|
104
|
+
});
|
|
105
|
+
it('handles circular references gracefully', () => {
|
|
106
|
+
const store = createMockStore({});
|
|
107
|
+
(0, StateCapture_1.trackStore)(store, { name: 'circular' });
|
|
108
|
+
const circular = { a: 1 };
|
|
109
|
+
circular.self = circular;
|
|
110
|
+
const warnSpy = jest.spyOn(console, 'warn').mockImplementation();
|
|
111
|
+
store.setState(circular);
|
|
112
|
+
warnSpy.mockRestore();
|
|
113
|
+
(0, StateCapture_1.freezeStateSnapshot)();
|
|
114
|
+
const snapshots = (0, StateCapture_1.getStateSnapshot)();
|
|
115
|
+
expect(snapshots).toHaveLength(1);
|
|
116
|
+
expect(snapshots[0].truncated).toBe(true);
|
|
117
|
+
});
|
|
118
|
+
it('clearStateCapture resets frozen snapshot', () => {
|
|
119
|
+
const store = createMockStore({ v: 1 });
|
|
120
|
+
(0, StateCapture_1.trackStore)(store, { name: 'test' });
|
|
121
|
+
store.setState({ v: 2 });
|
|
122
|
+
(0, StateCapture_1.freezeStateSnapshot)();
|
|
123
|
+
expect((0, StateCapture_1.getStateSnapshot)()).toHaveLength(1);
|
|
124
|
+
(0, StateCapture_1.clearStateCapture)();
|
|
125
|
+
expect((0, StateCapture_1.getStateSnapshot)()).toEqual([]);
|
|
126
|
+
});
|
|
127
|
+
});
|
|
128
|
+
//# sourceMappingURL=StateCapture.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StateCapture.test.js","sourceRoot":"","sources":["../../src/__tests__/StateCapture.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"expo-clipboard.d.ts","sourceRoot":"","sources":["../../../src/__tests__/__mocks__/expo-clipboard.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,cAAc,0BAAY,CAAC;AACxC,eAAO,MAAM,cAAc,qCAAqC,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getStringAsync = exports.setStringAsync = void 0;
|
|
4
|
+
exports.setStringAsync = jest.fn();
|
|
5
|
+
exports.getStringAsync = jest.fn(() => Promise.resolve(''));
|
|
6
|
+
//# sourceMappingURL=expo-clipboard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"expo-clipboard.js","sourceRoot":"","sources":["../../../src/__tests__/__mocks__/expo-clipboard.ts"],"names":[],"mappings":";;;AAAa,QAAA,cAAc,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;AAC3B,QAAA,cAAc,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
declare const _default: {
|
|
2
|
+
expoConfig: {
|
|
3
|
+
version: string;
|
|
4
|
+
name: string;
|
|
5
|
+
slug: string;
|
|
6
|
+
};
|
|
7
|
+
manifest2: {
|
|
8
|
+
extra: {
|
|
9
|
+
expoClient: {
|
|
10
|
+
version: string;
|
|
11
|
+
};
|
|
12
|
+
};
|
|
13
|
+
};
|
|
14
|
+
installationId: string;
|
|
15
|
+
};
|
|
16
|
+
export default _default;
|
|
17
|
+
//# sourceMappingURL=expo-constants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"expo-constants.d.ts","sourceRoot":"","sources":["../../../src/__tests__/__mocks__/expo-constants.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,wBAIE"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.default = {
|
|
4
|
+
expoConfig: { version: '1.0.0', name: 'TestApp', slug: 'test-app' },
|
|
5
|
+
manifest2: { extra: { expoClient: { version: '1.0.0' } } },
|
|
6
|
+
installationId: 'test-installation-id',
|
|
7
|
+
};
|
|
8
|
+
//# sourceMappingURL=expo-constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"expo-constants.js","sourceRoot":"","sources":["../../../src/__tests__/__mocks__/expo-constants.ts"],"names":[],"mappings":";;AAAA,kBAAe;IACb,UAAU,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE;IACnE,SAAS,EAAE,EAAE,KAAK,EAAE,EAAE,UAAU,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE;IAC1D,cAAc,EAAE,sBAAsB;CACvC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"expo-device.d.ts","sourceRoot":"","sources":["../../../src/__tests__/__mocks__/expo-device.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,SAAS,kBAAkB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"expo-device.js","sourceRoot":"","sources":["../../../src/__tests__/__mocks__/expo-device.ts"],"names":[],"mappings":";;;AAAa,QAAA,SAAS,GAAG,eAAe,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export declare enum EncodingType {
|
|
2
|
+
UTF8 = "utf8",
|
|
3
|
+
Base64 = "base64"
|
|
4
|
+
}
|
|
5
|
+
export declare const readAsStringAsync: jest.Mock<Promise<string>, [_uri: string, _options?: {
|
|
6
|
+
encoding?: EncodingType;
|
|
7
|
+
} | undefined], any>;
|
|
8
|
+
//# sourceMappingURL=expo-file-system-legacy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"expo-file-system-legacy.d.ts","sourceRoot":"","sources":["../../../src/__tests__/__mocks__/expo-file-system-legacy.ts"],"names":[],"mappings":"AAAA,oBAAY,YAAY;IACtB,IAAI,SAAS;IACb,MAAM,WAAW;CAClB;AAED,eAAO,MAAM,iBAAiB;eACW,YAAY;oBAEpD,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.readAsStringAsync = exports.EncodingType = void 0;
|
|
4
|
+
var EncodingType;
|
|
5
|
+
(function (EncodingType) {
|
|
6
|
+
EncodingType["UTF8"] = "utf8";
|
|
7
|
+
EncodingType["Base64"] = "base64";
|
|
8
|
+
})(EncodingType || (exports.EncodingType = EncodingType = {}));
|
|
9
|
+
exports.readAsStringAsync = jest.fn((_uri, _options) => Promise.resolve('dGVzdGJhc2U2NA=='));
|
|
10
|
+
//# sourceMappingURL=expo-file-system-legacy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"expo-file-system-legacy.js","sourceRoot":"","sources":["../../../src/__tests__/__mocks__/expo-file-system-legacy.ts"],"names":[],"mappings":";;;AAAA,IAAY,YAGX;AAHD,WAAY,YAAY;IACtB,6BAAa,CAAA;IACb,iCAAiB,CAAA;AACnB,CAAC,EAHW,YAAY,4BAAZ,YAAY,QAGvB;AAEY,QAAA,iBAAiB,GAAG,IAAI,CAAC,EAAE,CACtC,CAAC,IAAY,EAAE,QAAsC,EAAE,EAAE,CACvD,OAAO,CAAC,OAAO,CAAC,kBAAkB,CAAC,CACtC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"expo-localization.d.ts","sourceRoot":"","sources":["../../../src/__tests__/__mocks__/expo-localization.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU;;;;aAErB,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getLocales = void 0;
|
|
4
|
+
exports.getLocales = jest.fn(() => [
|
|
5
|
+
{ languageTag: 'en-US', languageCode: 'en', textDirection: 'ltr' },
|
|
6
|
+
]);
|
|
7
|
+
//# sourceMappingURL=expo-localization.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"expo-localization.js","sourceRoot":"","sources":["../../../src/__tests__/__mocks__/expo-localization.ts"],"names":[],"mappings":";;;AAAa,QAAA,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC;IACtC,EAAE,WAAW,EAAE,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE;CACnE,CAAC,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export declare const usePathname: jest.Mock<string, [], any>;
|
|
2
|
+
export declare const useSegments: jest.Mock<string[], [], any>;
|
|
3
|
+
export declare function __setPathname(pathname: string): void;
|
|
4
|
+
export declare function __setSegments(segments: string[]): void;
|
|
5
|
+
//# sourceMappingURL=expo-router.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"expo-router.d.ts","sourceRoot":"","sources":["../../../src/__tests__/__mocks__/expo-router.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,WAAW,4BAA2B,CAAC;AACpD,eAAO,MAAM,WAAW,8BAA2B,CAAC;AAEpD,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAEpD;AAED,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,CAEtD"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useSegments = exports.usePathname = void 0;
|
|
4
|
+
exports.__setPathname = __setPathname;
|
|
5
|
+
exports.__setSegments = __setSegments;
|
|
6
|
+
let _pathname = '/';
|
|
7
|
+
let _segments = [];
|
|
8
|
+
exports.usePathname = jest.fn(() => _pathname);
|
|
9
|
+
exports.useSegments = jest.fn(() => _segments);
|
|
10
|
+
function __setPathname(pathname) {
|
|
11
|
+
_pathname = pathname;
|
|
12
|
+
}
|
|
13
|
+
function __setSegments(segments) {
|
|
14
|
+
_segments = segments;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=expo-router.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"expo-router.js","sourceRoot":"","sources":["../../../src/__tests__/__mocks__/expo-router.ts"],"names":[],"mappings":";;;AAMA,sCAEC;AAED,sCAEC;AAZD,IAAI,SAAS,GAAG,GAAG,CAAC;AACpB,IAAI,SAAS,GAAa,EAAE,CAAC;AAEhB,QAAA,WAAW,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;AACvC,QAAA,WAAW,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;AAEpD,SAAgB,aAAa,CAAC,QAAgB;IAC5C,SAAS,GAAG,QAAQ,CAAC;AACvB,CAAC;AAED,SAAgB,aAAa,CAAC,QAAkB;IAC9C,SAAS,GAAG,QAAQ,CAAC;AACvB,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export declare const Accelerometer: {
|
|
2
|
+
setUpdateInterval: jest.Mock<any, any, any>;
|
|
3
|
+
addListener: jest.Mock<{
|
|
4
|
+
remove: jest.Mock<void, [], any>;
|
|
5
|
+
}, [callback: (data: {
|
|
6
|
+
x: number;
|
|
7
|
+
y: number;
|
|
8
|
+
z: number;
|
|
9
|
+
}) => void], any>;
|
|
10
|
+
_simulateData: (data: {
|
|
11
|
+
x: number;
|
|
12
|
+
y: number;
|
|
13
|
+
z: number;
|
|
14
|
+
}) => void;
|
|
15
|
+
_reset: () => void;
|
|
16
|
+
};
|
|
17
|
+
//# sourceMappingURL=expo-sensors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"expo-sensors.d.ts","sourceRoot":"","sources":["../../../src/__tests__/__mocks__/expo-sensors.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,aAAa;;;;yBAEe;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI;0BAO7D;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE;;CAM1D,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Accelerometer = void 0;
|
|
4
|
+
const listeners = [];
|
|
5
|
+
exports.Accelerometer = {
|
|
6
|
+
setUpdateInterval: jest.fn(),
|
|
7
|
+
addListener: jest.fn((callback) => {
|
|
8
|
+
listeners.push(callback);
|
|
9
|
+
return { remove: jest.fn(() => {
|
|
10
|
+
const idx = listeners.indexOf(callback);
|
|
11
|
+
if (idx >= 0)
|
|
12
|
+
listeners.splice(idx, 1);
|
|
13
|
+
}) };
|
|
14
|
+
}),
|
|
15
|
+
_simulateData: (data) => {
|
|
16
|
+
listeners.forEach((cb) => cb(data));
|
|
17
|
+
},
|
|
18
|
+
_reset: () => {
|
|
19
|
+
listeners.length = 0;
|
|
20
|
+
},
|
|
21
|
+
};
|
|
22
|
+
//# sourceMappingURL=expo-sensors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"expo-sensors.js","sourceRoot":"","sources":["../../../src/__tests__/__mocks__/expo-sensors.ts"],"names":[],"mappings":";;;AAAA,MAAM,SAAS,GAA+D,EAAE,CAAC;AAEpE,QAAA,aAAa,GAAG;IAC3B,iBAAiB,EAAE,IAAI,CAAC,EAAE,EAAE;IAC5B,WAAW,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,QAA6D,EAAE,EAAE;QACrF,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACzB,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE;gBAC5B,MAAM,GAAG,GAAG,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;gBACxC,IAAI,GAAG,IAAI,CAAC;oBAAE,SAAS,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YACzC,CAAC,CAAC,EAAE,CAAC;IACP,CAAC,CAAC;IACF,aAAa,EAAE,CAAC,IAAyC,EAAE,EAAE;QAC3D,SAAS,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IACtC,CAAC;IACD,MAAM,EAAE,GAAG,EAAE;QACX,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;IACvB,CAAC;CACF,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export declare const GestureDetector = "GestureDetector";
|
|
2
|
+
export declare const GestureHandlerRootView = "GestureHandlerRootView";
|
|
3
|
+
export declare const Gesture: {
|
|
4
|
+
Pan: () => {
|
|
5
|
+
onStart: jest.Mock<any, any, any>;
|
|
6
|
+
onUpdate: jest.Mock<any, any, any>;
|
|
7
|
+
onEnd: jest.Mock<any, any, any>;
|
|
8
|
+
minDistance: jest.Mock<any, any, any>;
|
|
9
|
+
};
|
|
10
|
+
};
|
|
11
|
+
//# sourceMappingURL=react-native-gesture-handler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"react-native-gesture-handler.d.ts","sourceRoot":"","sources":["../../../src/__tests__/__mocks__/react-native-gesture-handler.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,eAAe,oBAAoB,CAAC;AACjD,eAAO,MAAM,sBAAsB,2BAA2B,CAAC;AAC/D,eAAO,MAAM,OAAO;;;;;;;CAOnB,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Gesture = exports.GestureHandlerRootView = exports.GestureDetector = void 0;
|
|
4
|
+
exports.GestureDetector = 'GestureDetector';
|
|
5
|
+
exports.GestureHandlerRootView = 'GestureHandlerRootView';
|
|
6
|
+
exports.Gesture = {
|
|
7
|
+
Pan: () => ({
|
|
8
|
+
onStart: jest.fn().mockReturnThis(),
|
|
9
|
+
onUpdate: jest.fn().mockReturnThis(),
|
|
10
|
+
onEnd: jest.fn().mockReturnThis(),
|
|
11
|
+
minDistance: jest.fn().mockReturnThis(),
|
|
12
|
+
}),
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=react-native-gesture-handler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"react-native-gesture-handler.js","sourceRoot":"","sources":["../../../src/__tests__/__mocks__/react-native-gesture-handler.ts"],"names":[],"mappings":";;;AAAa,QAAA,eAAe,GAAG,iBAAiB,CAAC;AACpC,QAAA,sBAAsB,GAAG,wBAAwB,CAAC;AAClD,QAAA,OAAO,GAAG;IACrB,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;QACV,OAAO,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,cAAc,EAAE;QACnC,QAAQ,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,cAAc,EAAE;QACpC,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,cAAc,EAAE;QACjC,WAAW,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,cAAc,EAAE;KACxC,CAAC;CACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"react-native-svg.d.ts","sourceRoot":"","sources":["../../../src/__tests__/__mocks__/react-native-svg.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,GAAG,QAAQ,CAAC;AACzB,eAAO,MAAM,IAAI,SAAS,CAAC;AAC3B,eAAe,GAAG,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"react-native-svg.js","sourceRoot":"","sources":["../../../src/__tests__/__mocks__/react-native-svg.ts"],"names":[],"mappings":";;;AAAa,QAAA,GAAG,GAAG,KAAK,CAAC;AACZ,QAAA,IAAI,GAAG,MAAM,CAAC;AAC3B,kBAAe,WAAG,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"react-native-view-shot.d.ts","sourceRoot":"","sources":["../../../src/__tests__/__mocks__/react-native-view-shot.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU,qCAA+D,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"react-native-view-shot.js","sourceRoot":"","sources":["../../../src/__tests__/__mocks__/react-native-view-shot.ts"],"names":[],"mappings":";;;AAAa,QAAA,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,4BAA4B,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export declare const Platform: {
|
|
2
|
+
OS: string;
|
|
3
|
+
Version: string;
|
|
4
|
+
select: (obj: any) => any;
|
|
5
|
+
};
|
|
6
|
+
export declare const Dimensions: {
|
|
7
|
+
get: () => {
|
|
8
|
+
width: number;
|
|
9
|
+
height: number;
|
|
10
|
+
};
|
|
11
|
+
};
|
|
12
|
+
export declare const View = "View";
|
|
13
|
+
export declare const Text = "Text";
|
|
14
|
+
export declare const Modal = "Modal";
|
|
15
|
+
export declare const TextInput = "TextInput";
|
|
16
|
+
export declare const TouchableOpacity = "TouchableOpacity";
|
|
17
|
+
export declare const Image = "Image";
|
|
18
|
+
export declare const ActivityIndicator = "ActivityIndicator";
|
|
19
|
+
export declare const KeyboardAvoidingView = "KeyboardAvoidingView";
|
|
20
|
+
//# sourceMappingURL=react-native.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"react-native.d.ts","sourceRoot":"","sources":["../../../src/__tests__/__mocks__/react-native.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,QAAQ;;;kBAA+C,GAAG;CAAc,CAAC;AACtF,eAAO,MAAM,UAAU;;;;;CAA+C,CAAC;AACvE,eAAO,MAAM,IAAI,SAAS,CAAC;AAC3B,eAAO,MAAM,IAAI,SAAS,CAAC;AAC3B,eAAO,MAAM,KAAK,UAAU,CAAC;AAC7B,eAAO,MAAM,SAAS,cAAc,CAAC;AACrC,eAAO,MAAM,gBAAgB,qBAAqB,CAAC;AACnD,eAAO,MAAM,KAAK,UAAU,CAAC;AAC7B,eAAO,MAAM,iBAAiB,sBAAsB,CAAC;AACrD,eAAO,MAAM,oBAAoB,yBAAyB,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.KeyboardAvoidingView = exports.ActivityIndicator = exports.Image = exports.TouchableOpacity = exports.TextInput = exports.Modal = exports.Text = exports.View = exports.Dimensions = exports.Platform = void 0;
|
|
4
|
+
exports.Platform = { OS: 'ios', Version: '17.0', select: (obj) => obj.ios };
|
|
5
|
+
exports.Dimensions = { get: () => ({ width: 390, height: 844 }) };
|
|
6
|
+
exports.View = 'View';
|
|
7
|
+
exports.Text = 'Text';
|
|
8
|
+
exports.Modal = 'Modal';
|
|
9
|
+
exports.TextInput = 'TextInput';
|
|
10
|
+
exports.TouchableOpacity = 'TouchableOpacity';
|
|
11
|
+
exports.Image = 'Image';
|
|
12
|
+
exports.ActivityIndicator = 'ActivityIndicator';
|
|
13
|
+
exports.KeyboardAvoidingView = 'KeyboardAvoidingView';
|
|
14
|
+
//# sourceMappingURL=react-native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"react-native.js","sourceRoot":"","sources":["../../../src/__tests__/__mocks__/react-native.ts"],"names":[],"mappings":";;;AAAa,QAAA,QAAQ,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,GAAQ,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;AACzE,QAAA,UAAU,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;AAC1D,QAAA,IAAI,GAAG,MAAM,CAAC;AACd,QAAA,IAAI,GAAG,MAAM,CAAC;AACd,QAAA,KAAK,GAAG,OAAO,CAAC;AAChB,QAAA,SAAS,GAAG,WAAW,CAAC;AACxB,QAAA,gBAAgB,GAAG,kBAAkB,CAAC;AACtC,QAAA,KAAK,GAAG,OAAO,CAAC;AAChB,QAAA,iBAAiB,GAAG,mBAAmB,CAAC;AACxC,QAAA,oBAAoB,GAAG,sBAAsB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fileToBase64.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/fileToBase64.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const fileToBase64_1 = require("../utils/fileToBase64");
|
|
4
|
+
const legacy_1 = require("expo-file-system/legacy");
|
|
5
|
+
describe('fileToBase64', () => {
|
|
6
|
+
beforeEach(() => {
|
|
7
|
+
jest.clearAllMocks();
|
|
8
|
+
});
|
|
9
|
+
it('reads file as base64 using expo-file-system', async () => {
|
|
10
|
+
const result = await (0, fileToBase64_1.fileToBase64)('file:///tmp/test.png');
|
|
11
|
+
expect(legacy_1.readAsStringAsync).toHaveBeenCalledWith('file:///tmp/test.png', {
|
|
12
|
+
encoding: legacy_1.EncodingType.Base64,
|
|
13
|
+
});
|
|
14
|
+
expect(result).toBe('dGVzdGJhc2U2NA==');
|
|
15
|
+
});
|
|
16
|
+
it('propagates errors from readAsStringAsync', async () => {
|
|
17
|
+
legacy_1.readAsStringAsync.mockRejectedValueOnce(new Error('File not found'));
|
|
18
|
+
await expect((0, fileToBase64_1.fileToBase64)('file:///nonexistent')).rejects.toThrow('File not found');
|
|
19
|
+
});
|
|
20
|
+
});
|
|
21
|
+
//# sourceMappingURL=fileToBase64.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fileToBase64.test.js","sourceRoot":"","sources":["../../src/__tests__/fileToBase64.test.ts"],"names":[],"mappings":";;AAAA,wDAAqD;AACrD,oDAA0E;AAE1E,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;IAC5B,UAAU,CAAC,GAAG,EAAE;QACd,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6CAA6C,EAAE,KAAK,IAAI,EAAE;QAC3D,MAAM,MAAM,GAAG,MAAM,IAAA,2BAAY,EAAC,sBAAsB,CAAC,CAAC;QAC1D,MAAM,CAAC,0BAAiB,CAAC,CAAC,oBAAoB,CAAC,sBAAsB,EAAE;YACrE,QAAQ,EAAE,qBAAY,CAAC,MAAM;SAC9B,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0CAA0C,EAAE,KAAK,IAAI,EAAE;QACvD,0BAA+B,CAAC,qBAAqB,CAAC,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC;QACpF,MAAM,MAAM,CAAC,IAAA,2BAAY,EAAC,qBAAqB,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;IACtF,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"slack.test.d.ts","sourceRoot":"","sources":["../../../src/__tests__/integrations/slack.test.ts"],"names":[],"mappings":""}
|