UNPKG

1.64 kBPlain TextView Raw
1import DeviceSensor from '../DeviceSensor';
2import MockNativeSensorModule from './mocks/MockNativeSensorModule';
3
4it(`starts and stops observing on Android`, () => {
5 const nativeModule = new MockNativeSensorModule();
6 const sensor = new DeviceSensor(nativeModule, 'mockDidUpdate');
7
8 expect(nativeModule.startObserving).not.toHaveBeenCalled();
9 expect(nativeModule.stopObserving).not.toHaveBeenCalled();
10
11 // Add listeners
12 let subscription1 = sensor.addListener(() => {});
13 expect(nativeModule.startObserving).toHaveBeenCalledTimes(1);
14 let subscription2 = sensor.addListener(() => {});
15 expect(nativeModule.startObserving).toHaveBeenCalledTimes(1);
16
17 // Remove listeners
18 subscription1.remove();
19 expect(nativeModule.stopObserving).not.toHaveBeenCalled();
20 subscription2.remove();
21 expect(nativeModule.stopObserving).toHaveBeenCalledTimes(1);
22});
23
24it(`starts and stops observing after removing all listeners at once on Android`, () => {
25 const nativeModule = new MockNativeSensorModule();
26 const sensor = new DeviceSensor(nativeModule, 'mockDidUpdate');
27
28 expect(nativeModule.startObserving).not.toHaveBeenCalled();
29 expect(nativeModule.stopObserving).not.toHaveBeenCalled();
30
31 // Add listeners
32 sensor.addListener(() => {});
33 expect(nativeModule.startObserving).toHaveBeenCalledTimes(1);
34 sensor.addListener(() => {});
35 expect(nativeModule.startObserving).toHaveBeenCalledTimes(1);
36
37 // Remove listeners
38 expect(nativeModule.stopObserving).not.toHaveBeenCalled();
39 sensor.removeAllListeners();
40 expect(nativeModule.stopObserving).toHaveBeenCalledTimes(1);
41 expect(sensor.hasListeners()).toBe(false);
42});