@@ -4,6 +4,7 @@ import { Device } from "nativescript-preview-sdk";
4
4
import { assert } from "chai" ;
5
5
import { DeviceDiscoveryEventNames } from "../../lib/common/constants" ;
6
6
import { LoggerStub , ErrorsStub } from "../stubs" ;
7
+ import * as sinon from "sinon" ;
7
8
8
9
let foundDevices : Device [ ] = [ ] ;
9
10
let lostDevices : Device [ ] = [ ] ;
@@ -38,8 +39,9 @@ function resetDevices() {
38
39
}
39
40
40
41
describe ( "PreviewDevicesService" , ( ) => {
41
- describe ( "onDevicesPresence " , ( ) => {
42
+ describe ( "getConnectedDevices " , ( ) => {
42
43
let previewDevicesService : IPreviewDevicesService = null ;
44
+ let clock : sinon . SinonFakeTimers = null ;
43
45
beforeEach ( ( ) => {
44
46
const injector = createTestInjector ( ) ;
45
47
previewDevicesService = injector . resolve ( "previewDevicesService" ) ;
@@ -49,11 +51,13 @@ describe("PreviewDevicesService", () => {
49
51
previewDevicesService . on ( DeviceDiscoveryEventNames . DEVICE_LOST , device => {
50
52
lostDevices . push ( device ) ;
51
53
} ) ;
54
+ clock = sinon . useFakeTimers ( ) ;
52
55
} ) ;
53
56
54
57
afterEach ( ( ) => {
55
58
previewDevicesService . removeAllListeners ( ) ;
56
59
resetDevices ( ) ;
60
+ clock . restore ( ) ;
57
61
} ) ;
58
62
59
63
it ( "should add new device" , ( ) => {
@@ -101,6 +105,7 @@ describe("PreviewDevicesService", () => {
101
105
resetDevices ( ) ;
102
106
103
107
previewDevicesService . updateConnectedDevices ( [ ] ) ;
108
+ clock . tick ( 5000 ) ;
104
109
105
110
assert . deepEqual ( foundDevices , [ ] ) ;
106
111
assert . deepEqual ( lostDevices , [ device1 ] ) ;
@@ -116,10 +121,30 @@ describe("PreviewDevicesService", () => {
116
121
resetDevices ( ) ;
117
122
118
123
previewDevicesService . updateConnectedDevices ( [ device2 ] ) ;
124
+ clock . tick ( 5000 ) ;
119
125
120
126
assert . deepEqual ( previewDevicesService . getConnectedDevices ( ) , [ device2 ] ) ;
121
127
assert . deepEqual ( foundDevices , [ device2 ] ) ;
122
128
assert . deepEqual ( lostDevices , [ device1 ] ) ;
123
129
} ) ;
130
+ it ( "shouldn't emit deviceFound or deviceLost when preview app is restarted on device" , ( ) => {
131
+ const device1 = createDevice ( "device1" ) ;
132
+
133
+ previewDevicesService . updateConnectedDevices ( [ device1 ] ) ;
134
+
135
+ assert . deepEqual ( previewDevicesService . getConnectedDevices ( ) , [ device1 ] ) ;
136
+ assert . deepEqual ( foundDevices , [ device1 ] ) ;
137
+ assert . deepEqual ( lostDevices , [ ] ) ;
138
+ resetDevices ( ) ;
139
+
140
+ // preview app is restarted
141
+ previewDevicesService . updateConnectedDevices ( [ ] ) ;
142
+ clock . tick ( 500 ) ;
143
+ previewDevicesService . updateConnectedDevices ( [ device1 ] ) ;
144
+
145
+ assert . deepEqual ( foundDevices , [ ] ) ;
146
+ assert . deepEqual ( lostDevices , [ ] ) ;
147
+ assert . deepEqual ( previewDevicesService . getConnectedDevices ( ) , [ device1 ] ) ;
148
+ } ) ;
124
149
} ) ;
125
150
} ) ;
0 commit comments