Skip to content

Commit 8a5f64f

Browse files
committed
chore(preview): handle PR comments
1 parent aeec0ac commit 8a5f64f

File tree

6 files changed

+45
-23
lines changed

6 files changed

+45
-23
lines changed

lib/definitions/preview-app-livesync.d.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,8 @@ declare global {
3535
}
3636

3737
interface IPreviewDevicesService extends EventEmitter {
38-
connectedDevices: Device[];
39-
onDevicesPresence(devices: Device[]): void;
38+
getConnectedDevices(): Device[];
39+
updateConnectedDevices(devices: Device[]): void;
4040
getDeviceById(id: string): Device;
4141
getDevicesForPlatform(platform: string): Device[];
4242
}

lib/services/livesync/playground/devices/preview-devices-service.ts

+6-2
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,13 @@ import { EventEmitter } from "events";
33
import { DeviceDiscoveryEventNames } from "../../../../common/constants";
44

55
export class PreviewDevicesService extends EventEmitter implements IPreviewDevicesService {
6-
public connectedDevices: Device[] = [];
6+
private connectedDevices: Device[] = [];
77

8-
public onDevicesPresence(devices: Device[]): void {
8+
public getConnectedDevices(): Device[] {
9+
return this.connectedDevices;
10+
}
11+
12+
public updateConnectedDevices(devices: Device[]): void {
913
_(devices)
1014
.reject(d => _.find(this.connectedDevices, device => d.id === device.id))
1115
.each(device => this.raiseDeviceFound(device));

lib/services/livesync/playground/preview-app-livesync-service.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -56,15 +56,15 @@ export class PreviewAppLiveSyncService implements IPreviewAppLiveSyncService {
5656
public async syncFiles(data: IPreviewAppLiveSyncData, filesToSync: string[], filesToRemove: string[]): Promise<void> {
5757
this.showWarningsForNativeFiles(filesToSync);
5858

59-
for (const device of this.$previewDevicesService.connectedDevices) {
59+
const connectedDevices = this.$previewDevicesService.getConnectedDevices();
60+
for (const device of connectedDevices) {
6061
await this.$previewAppPluginsService.comparePluginsOnDevice(data, device);
6162
}
6263

63-
const platforms = _(this.$previewDevicesService.connectedDevices)
64+
const platforms = _(connectedDevices)
6465
.map(device => device.platform)
6566
.uniq()
6667
.value();
67-
6868
for (const platform of platforms) {
6969
await this.syncFilesForPlatformSafe(data, platform, { filesToSync, filesToRemove, useHotModuleReload: data.appFilesUpdaterOptions.useHotModuleReload });
7070
}

lib/services/livesync/playground/preview-sdk-service.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ export class PreviewSdkService extends EventEmitter implements IPreviewSdkServic
7474
onConnectedDevicesChange: (connectedDevices: ConnectedDevices) => ({}),
7575
onDeviceConnectedMessage: (deviceConnectedMessage: DeviceConnectedMessage) => ({}),
7676
onDeviceConnected: (device: Device) => ({}),
77-
onDevicesPresence: (devices: Device[]) => this.$previewDevicesService.onDevicesPresence(devices),
77+
onDevicesPresence: (devices: Device[]) => this.$previewDevicesService.updateConnectedDevices(devices),
7878
onSendingChange: (sending: boolean) => ({ }),
7979
onBiggerFilesUpload: async (filesContent, callback) => {
8080
const gzippedContent = Buffer.from(pako.gzip(filesContent));

test/services/playground/preview-app-livesync-service.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -158,7 +158,7 @@ function createTestInjector(options?: {
158158
}
159159
});
160160
injector.register("previewDevicesService", {
161-
connectedDevices: [deviceMockData]
161+
getConnectedDevices: () => [deviceMockData]
162162
});
163163

164164
return injector;

test/services/preview-devices-service.ts

+32-14
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,11 @@ function createDevice(id: string): Device {
2727
};
2828
}
2929

30+
function resetDevices() {
31+
foundDevices = [];
32+
lostDevices = [];
33+
}
34+
3035
describe("PreviewDevicesService", () => {
3136
describe("onDevicesPresence", () => {
3237
let previewDevicesService: IPreviewDevicesService = null;
@@ -43,27 +48,31 @@ describe("PreviewDevicesService", () => {
4348

4449
afterEach(() => {
4550
previewDevicesService.removeAllListeners();
46-
foundDevices = [];
47-
lostDevices = [];
51+
resetDevices();
4852
});
4953

5054
it("should add new device", () => {
5155
const device = createDevice("device1");
5256

53-
previewDevicesService.onDevicesPresence([device]);
57+
previewDevicesService.updateConnectedDevices([device]);
5458

55-
assert.deepEqual(previewDevicesService.connectedDevices, [device]);
59+
assert.deepEqual(previewDevicesService.getConnectedDevices(), [device]);
5660
assert.deepEqual(foundDevices, [device]);
5761
assert.deepEqual(lostDevices, []);
5862
});
5963
it("should add new device when there are already connected devices", () => {
6064
const device1 = createDevice("device1");
6165
const device2 = createDevice("device2");
62-
previewDevicesService.connectedDevices = [device1];
6366

64-
previewDevicesService.onDevicesPresence([device1, device2]);
67+
previewDevicesService.updateConnectedDevices([device1]);
68+
assert.deepEqual(previewDevicesService.getConnectedDevices(), [device1]);
69+
assert.deepEqual(foundDevices, [device1]);
70+
assert.deepEqual(lostDevices, []);
71+
resetDevices();
72+
73+
previewDevicesService.updateConnectedDevices([device1, device2]);
6574

66-
assert.deepEqual(previewDevicesService.connectedDevices, [device1, device2]);
75+
assert.deepEqual(previewDevicesService.getConnectedDevices(), [device1, device2]);
6776
assert.deepEqual(foundDevices, [device2]);
6877
assert.deepEqual(lostDevices, []);
6978
});
@@ -72,29 +81,38 @@ describe("PreviewDevicesService", () => {
7281
const device2 = createDevice("device2");
7382
const device3 = createDevice("device3");
7483

75-
previewDevicesService.onDevicesPresence([device1, device2, device3]);
84+
previewDevicesService.updateConnectedDevices([device1, device2, device3]);
7685

77-
assert.deepEqual(previewDevicesService.connectedDevices, [device1, device2, device3]);
86+
assert.deepEqual(previewDevicesService.getConnectedDevices(), [device1, device2, device3]);
7887
assert.deepEqual(foundDevices, [device1, device2, device3]);
7988
assert.deepEqual(lostDevices, []);
8089
});
8190
it("should remove device", () => {
8291
const device1 = createDevice("device1");
83-
previewDevicesService.connectedDevices = [device1];
92+
previewDevicesService.updateConnectedDevices([device1]);
93+
assert.deepEqual(previewDevicesService.getConnectedDevices(), [device1]);
94+
assert.deepEqual(foundDevices, [device1]);
95+
assert.deepEqual(lostDevices, []);
96+
resetDevices();
8497

85-
previewDevicesService.onDevicesPresence([]);
98+
previewDevicesService.updateConnectedDevices([]);
8699

87100
assert.deepEqual(foundDevices, []);
88101
assert.deepEqual(lostDevices, [device1]);
89102
});
90103
it("should add and remove devices in the same time", () => {
91104
const device1 = createDevice("device1");
92105
const device2 = createDevice("device2");
93-
previewDevicesService.connectedDevices = [device1];
94106

95-
previewDevicesService.onDevicesPresence([device2]);
107+
previewDevicesService.updateConnectedDevices([device1]);
108+
assert.deepEqual(previewDevicesService.getConnectedDevices(), [device1]);
109+
assert.deepEqual(foundDevices, [device1]);
110+
assert.deepEqual(lostDevices, []);
111+
resetDevices();
112+
113+
previewDevicesService.updateConnectedDevices([device2]);
96114

97-
assert.deepEqual(previewDevicesService.connectedDevices, [device2]);
115+
assert.deepEqual(previewDevicesService.getConnectedDevices(), [device2]);
98116
assert.deepEqual(foundDevices, [device2]);
99117
assert.deepEqual(lostDevices, [device1]);
100118
});

0 commit comments

Comments
 (0)