1 | import DeviceSensor from '../DeviceSensor';
|
2 | import MockNativeSensorModule from './mocks/MockNativeSensorModule';
|
3 |
|
4 | it(`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 |
|
12 | let subscription1 = sensor.addListener(() => {});
|
13 | expect(nativeModule.startObserving).toHaveBeenCalledTimes(1);
|
14 | let subscription2 = sensor.addListener(() => {});
|
15 | expect(nativeModule.startObserving).toHaveBeenCalledTimes(1);
|
16 |
|
17 |
|
18 | subscription1.remove();
|
19 | expect(nativeModule.stopObserving).not.toHaveBeenCalled();
|
20 | subscription2.remove();
|
21 | expect(nativeModule.stopObserving).toHaveBeenCalledTimes(1);
|
22 | });
|
23 |
|
24 | it(`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 |
|
32 | sensor.addListener(() => {});
|
33 | expect(nativeModule.startObserving).toHaveBeenCalledTimes(1);
|
34 | sensor.addListener(() => {});
|
35 | expect(nativeModule.startObserving).toHaveBeenCalledTimes(1);
|
36 |
|
37 |
|
38 | expect(nativeModule.stopObserving).not.toHaveBeenCalled();
|
39 | sensor.removeAllListeners();
|
40 | expect(nativeModule.stopObserving).toHaveBeenCalledTimes(1);
|
41 | expect(sensor.hasListeners()).toBe(false);
|
42 | });
|