Skip to content

Commit 66cfacf

Browse files
committed
fix: fix the initial sync to preview app
1 parent e6c7f98 commit 66cfacf

File tree

2 files changed

+14
-8
lines changed

2 files changed

+14
-8
lines changed

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

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { Device, FilesPayload } from "nativescript-preview-sdk";
2-
import { APP_RESOURCES_FOLDER_NAME, TrackActionNames, FILES_CHANGE_EVENT_NAME } from "../../../constants";
2+
import { APP_RESOURCES_FOLDER_NAME, TrackActionNames, FILES_CHANGE_EVENT_NAME, INITIAL_SYNC_EVENT_NAME } from "../../../constants";
33
import { PreviewAppLiveSyncEvents } from "./preview-app-constants";
44
import { HmrConstants } from "../../../common/constants";
55
import { stringify } from "../../../common/helpers";
@@ -47,12 +47,15 @@ export class PreviewAppLiveSyncService extends EventEmitter implements IPreviewA
4747
}
4848

4949
await this.$previewAppPluginsService.comparePluginsOnDevice(data, device);
50-
this.deviceInitializationPromise[device.id] = this.getInitialFilesForPlatformSafe(data, device.platform);
5150

5251
this.$platformWatcherService.on(FILES_CHANGE_EVENT_NAME, async (filesChangeData: IFilesChangeEventData) => {
5352
await this.onWebpackCompilationComplete(data, filesChangeData.hmrData, filesChangeData.files, device.platform);
5453
});
5554

55+
this.$platformWatcherService.on(INITIAL_SYNC_EVENT_NAME, async (initialSyncData: IInitialSyncEventData) => {
56+
this.deviceInitializationPromise[device.id] = this.getInitialFilesForPlatformSafe(data, device.platform);
57+
});
58+
5659
const { nativePlatformData, projectData, preparePlatformData } = this.$workflowDataService.createWorkflowData(device.platform.toLowerCase(), data.projectDir, data);
5760

5861
// Setup externals

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

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import { ProjectFilesManager } from "../../../lib/common/services/project-files-
99
import { EventEmitter } from "events";
1010
import { PreviewAppFilesService } from "../../../lib/services/livesync/playground/preview-app-files-service";
1111
import { WorkflowDataService, PreparePlatformData } from "../../../lib/services/workflow/workflow-data-service";
12+
import { INITIAL_SYNC_EVENT_NAME } from "../../../lib/constants";
1213

1314
interface ITestCase {
1415
name: string;
@@ -96,6 +97,13 @@ class LoggerMock extends LoggerStub {
9697
}
9798
}
9899

100+
class PlatformWatcherServiceMock extends EventEmitter {
101+
public startWatchers(platformData: IPlatformData, projectData: IProjectData, preparePlatformData: PreparePlatformData) {
102+
isHMRPassedToEnv = preparePlatformData.env.hmr;
103+
this.emit(INITIAL_SYNC_EVENT_NAME, {});
104+
}
105+
}
106+
99107
function createTestInjector(options?: {
100108
projectFiles?: string[]
101109
}) {
@@ -157,12 +165,7 @@ function createTestInjector(options?: {
157165
injector.register("analyticsService", {
158166
trackEventActionInGoogleAnalytics: () => ({})
159167
});
160-
injector.register("platformWatcherService", {
161-
startWatchers: (platformData: IPlatformData, projectData: IProjectData, preparePlatformData: PreparePlatformData) => {
162-
isHMRPassedToEnv = preparePlatformData.env.hmr;
163-
},
164-
on: () => ({})
165-
});
168+
injector.register("platformWatcherService", PlatformWatcherServiceMock);
166169
injector.register("workflowDataService", WorkflowDataService);
167170

168171
return injector;

0 commit comments

Comments
 (0)