@simplysm/sd-cli 14.0.16 → 14.0.18
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -1
- package/dist/angular/client-transform-stylesheet.d.ts +2 -0
- package/dist/angular/client-transform-stylesheet.d.ts.map +1 -1
- package/dist/angular/client-transform-stylesheet.js +88 -2
- package/dist/angular/client-transform-stylesheet.js.map +1 -1
- package/dist/angular/vite-angular-plugin.d.ts +7 -0
- package/dist/angular/vite-angular-plugin.d.ts.map +1 -1
- package/dist/angular/vite-angular-plugin.js +78 -16
- package/dist/angular/vite-angular-plugin.js.map +1 -1
- package/dist/capacitor/capacitor.d.ts.map +1 -1
- package/dist/capacitor/capacitor.js +9 -13
- package/dist/capacitor/capacitor.js.map +1 -1
- package/dist/commands/check.d.ts.map +1 -1
- package/dist/commands/check.js +8 -9
- package/dist/commands/check.js.map +1 -1
- package/dist/commands/device.d.ts.map +1 -1
- package/dist/commands/device.js +33 -1
- package/dist/commands/device.js.map +1 -1
- package/dist/commands/lint.d.ts +0 -1
- package/dist/commands/lint.d.ts.map +1 -1
- package/dist/commands/lint.js +2 -3
- package/dist/commands/lint.js.map +1 -1
- package/dist/commands/publish.js +2 -2
- package/dist/commands/publish.js.map +1 -1
- package/dist/commands/typecheck.d.ts.map +1 -1
- package/dist/commands/typecheck.js +0 -1
- package/dist/commands/typecheck.js.map +1 -1
- package/dist/electron/electron.d.ts +3 -2
- package/dist/electron/electron.d.ts.map +1 -1
- package/dist/electron/electron.js +54 -31
- package/dist/electron/electron.js.map +1 -1
- package/dist/engines/BaseEngine.js +1 -1
- package/dist/engines/BaseEngine.js.map +1 -1
- package/dist/engines/NgtscEngine.d.ts.map +1 -1
- package/dist/engines/NgtscEngine.js +0 -1
- package/dist/engines/NgtscEngine.js.map +1 -1
- package/dist/engines/ServerEsbuildEngine.d.ts.map +1 -1
- package/dist/engines/ServerEsbuildEngine.js +0 -1
- package/dist/engines/ServerEsbuildEngine.js.map +1 -1
- package/dist/engines/TscEngine.d.ts.map +1 -1
- package/dist/engines/TscEngine.js +0 -1
- package/dist/engines/TscEngine.js.map +1 -1
- package/dist/engines/ViteEngine.d.ts.map +1 -1
- package/dist/engines/ViteEngine.js +8 -1
- package/dist/engines/ViteEngine.js.map +1 -1
- package/dist/engines/index.d.ts +0 -10
- package/dist/engines/index.d.ts.map +1 -1
- package/dist/engines/index.js +0 -5
- package/dist/engines/index.js.map +1 -1
- package/dist/engines/types.d.ts +0 -1
- package/dist/engines/types.d.ts.map +1 -1
- package/dist/infra/SignalHandler.d.ts +1 -6
- package/dist/infra/SignalHandler.d.ts.map +1 -1
- package/dist/infra/SignalHandler.js +4 -13
- package/dist/infra/SignalHandler.js.map +1 -1
- package/dist/orchestrators/BuildOrchestrator.d.ts.map +1 -1
- package/dist/orchestrators/BuildOrchestrator.js +7 -12
- package/dist/orchestrators/BuildOrchestrator.js.map +1 -1
- package/dist/orchestrators/DevWatchOrchestrator.d.ts.map +1 -1
- package/dist/orchestrators/DevWatchOrchestrator.js +17 -10
- package/dist/orchestrators/DevWatchOrchestrator.js.map +1 -1
- package/dist/sd-cli-entry.d.ts +0 -1
- package/dist/sd-cli-entry.d.ts.map +1 -1
- package/dist/sd-cli-entry.js +7 -8
- package/dist/sd-cli-entry.js.map +1 -1
- package/dist/sd-config.types.d.ts +11 -1
- package/dist/sd-config.types.d.ts.map +1 -1
- package/dist/utils/angular-compiler.d.ts.map +1 -1
- package/dist/utils/angular-compiler.js +20 -13
- package/dist/utils/angular-compiler.js.map +1 -1
- package/dist/utils/esbuild-config.d.ts +1 -1
- package/dist/utils/esbuild-config.d.ts.map +1 -1
- package/dist/utils/esbuild-config.js +1 -4
- package/dist/utils/esbuild-config.js.map +1 -1
- package/dist/utils/ngtsc-build-core.d.ts.map +1 -1
- package/dist/utils/ngtsc-build-core.js +3 -0
- package/dist/utils/ngtsc-build-core.js.map +1 -1
- package/dist/utils/tsc-build.d.ts +5 -0
- package/dist/utils/tsc-build.d.ts.map +1 -1
- package/dist/utils/tsc-build.js +2 -1
- package/dist/utils/tsc-build.js.map +1 -1
- package/dist/utils/vite-config.d.ts +1 -1
- package/dist/utils/vite-config.d.ts.map +1 -1
- package/dist/utils/vite-config.js +22 -53
- package/dist/utils/vite-config.js.map +1 -1
- package/dist/utils/vite-pwa-plugin.d.ts +9 -0
- package/dist/utils/vite-pwa-plugin.d.ts.map +1 -0
- package/dist/utils/vite-pwa-plugin.js +139 -0
- package/dist/utils/vite-pwa-plugin.js.map +1 -0
- package/dist/utils/worker-utils.d.ts +2 -5
- package/dist/utils/worker-utils.d.ts.map +1 -1
- package/dist/utils/worker-utils.js +5 -11
- package/dist/utils/worker-utils.js.map +1 -1
- package/dist/workers/client.worker.d.ts.map +1 -1
- package/dist/workers/client.worker.js +9 -3
- package/dist/workers/client.worker.js.map +1 -1
- package/dist/workers/library-build.worker.d.ts.map +1 -1
- package/dist/workers/library-build.worker.js +6 -2
- package/dist/workers/library-build.worker.js.map +1 -1
- package/dist/workers/ngtsc-build.worker.js +2 -2
- package/dist/workers/ngtsc-build.worker.js.map +1 -1
- package/dist/workers/server-build.worker.d.ts.map +1 -1
- package/dist/workers/server-build.worker.js +6 -2
- package/dist/workers/server-build.worker.js.map +1 -1
- package/dist/workers/server-runtime.worker.js +4 -4
- package/dist/workers/server-runtime.worker.js.map +1 -1
- package/docs/config.md +26 -0
- package/docs/pwa-configuration-types.md +1 -1
- package/package.json +8 -10
- package/src/angular/client-transform-stylesheet.ts +104 -2
- package/src/angular/vite-angular-plugin.ts +92 -31
- package/src/capacitor/capacitor.ts +10 -26
- package/src/commands/check.ts +8 -11
- package/src/commands/device.ts +38 -3
- package/src/commands/lint.ts +2 -3
- package/src/commands/publish.ts +2 -2
- package/src/commands/typecheck.ts +0 -1
- package/src/electron/electron.ts +62 -43
- package/src/engines/BaseEngine.ts +1 -1
- package/src/engines/NgtscEngine.ts +0 -1
- package/src/engines/ServerEsbuildEngine.ts +0 -1
- package/src/engines/TscEngine.ts +0 -1
- package/src/engines/ViteEngine.ts +7 -1
- package/src/engines/index.ts +0 -10
- package/src/engines/types.ts +0 -1
- package/src/infra/SignalHandler.ts +4 -14
- package/src/orchestrators/BuildOrchestrator.ts +7 -9
- package/src/orchestrators/DevWatchOrchestrator.ts +21 -9
- package/src/sd-cli-entry.ts +11 -16
- package/src/sd-config.types.ts +12 -1
- package/src/utils/angular-compiler.ts +21 -21
- package/src/utils/esbuild-config.ts +2 -5
- package/src/utils/ngtsc-build-core.ts +7 -0
- package/src/utils/tsc-build.ts +7 -0
- package/src/utils/vite-config.ts +23 -55
- package/src/utils/vite-pwa-plugin.ts +168 -0
- package/src/utils/worker-utils.ts +5 -11
- package/src/workers/client.worker.ts +11 -3
- package/src/workers/library-build.worker.ts +6 -2
- package/src/workers/ngtsc-build.worker.ts +2 -2
- package/src/workers/server-build.worker.ts +7 -2
- package/src/workers/server-runtime.worker.ts +4 -4
- package/tests/angular/client-transform-stylesheet.spec.ts +43 -0
- package/tests/angular/find-affected-by-scss.spec.ts +37 -0
- package/tests/angular/fixtures/basic-app/scss/_colors.scss +1 -0
- package/tests/angular/fixtures/basic-app/scss/_variables.scss +3 -0
- package/tests/angular/fixtures/basic-app/src/styled.component.ts +14 -0
- package/tests/angular/linker-disk-cache.spec.ts +158 -0
- package/tests/angular/scss-disk-cache.spec.ts +162 -0
- package/tests/angular/vite-angular-plugin-hmr-fallback.spec.ts +15 -15
- package/tests/angular/vite-angular-plugin-hmr.spec.ts +9 -9
- package/tests/angular/vite-angular-plugin-lint.spec.ts +4 -4
- package/tests/angular/vite-angular-plugin-scss-hmr.spec.ts +87 -0
- package/tests/angular/vite-angular-plugin.spec.ts +15 -15
- package/tests/capacitor/capacitor-icon.spec.ts +2 -4
- package/tests/capacitor/capacitor-init.spec.ts +2 -4
- package/tests/capacitor/capacitor-workspace.spec.ts +2 -4
- package/tests/commands/device.spec.ts +100 -0
- package/tests/electron/electron.spec.ts +24 -17
- package/tests/engines/ngtsc-engine.spec.ts +0 -3
- package/tests/engines/server-esbuild-engine.spec.ts +0 -3
- package/tests/engines/tsc-engine.spec.ts +1 -2
- package/tests/engines/vite-engine.spec.ts +0 -2
- package/tests/infra/signal-handler.spec.ts +1 -12
- package/tests/orchestrators/build-orchestrator.spec.ts +0 -6
- package/tests/orchestrators/dev-watch-orchestrator.spec.ts +24 -66
- package/tests/utils/angular-compiler.spec.ts +1396 -32
- package/tests/utils/esbuild-config.spec.ts +4 -7
- package/tests/utils/{ngtsc-build-core-angular-compiler.spec.ts → ngtsc-build-core.spec.ts} +142 -11
- package/tests/utils/tsc-build.spec.ts +4 -1
- package/tests/utils/vite-config.spec.ts +130 -261
- package/tests/utils/vite-pwa-plugin.acc.spec.ts +143 -0
- package/tests/utils/vite-pwa-plugin.spec.ts +350 -0
- package/tests/utils/worker-utils.spec.ts +8 -7
- package/tests/workers/client-worker.spec.ts +50 -1
- package/tests/workers/dev-port-file.verify.md +6 -0
- package/tests/workers/library-build-lint.spec.ts +1 -1
- package/tests/workers/library-build-worker.spec.ts +1 -1
- package/tests/workers/ngtsc-build-lint.spec.ts +1 -1
- package/tests/workers/server-build-lint.spec.ts +1 -1
- package/tests/workers/server-build-worker.spec.ts +1 -1
- package/tests/workers/server-runtime-worker.spec.ts +8 -1
- package/dist/infra/WorkerManager.d.ts +0 -40
- package/dist/infra/WorkerManager.d.ts.map +0 -1
- package/dist/infra/WorkerManager.js +0 -59
- package/dist/infra/WorkerManager.js.map +0 -1
- package/dist/utils/SdCliReporter.d.ts +0 -18
- package/dist/utils/SdCliReporter.d.ts.map +0 -1
- package/dist/utils/SdCliReporter.js +0 -144
- package/dist/utils/SdCliReporter.js.map +0 -1
- package/src/infra/WorkerManager.ts +0 -65
- package/src/utils/SdCliReporter.ts +0 -177
- package/tests/angular/scss-compiler-async.spec.ts +0 -54
- package/tests/commands/dev.spec.ts +0 -53
- package/tests/commands/watch.spec.ts +0 -53
- package/tests/infra/worker-manager.spec.ts +0 -63
- package/tests/utils/angular-compiler-emit.spec.ts +0 -570
- package/tests/utils/angular-compiler-init.spec.ts +0 -705
- package/tests/utils/angular-compiler-update.spec.ts +0 -293
- package/tests/utils/build-env.spec.ts +0 -33
- package/tests/utils/ngtsc-build-core-transform-stylesheet.spec.ts +0 -124
- package/tests/utils/ngtsc-scss-refactor.spec.ts +0 -47
|
@@ -651,8 +651,9 @@ describe("DevWatchOrchestrator", () => {
|
|
|
651
651
|
expect.any(Object),
|
|
652
652
|
);
|
|
653
653
|
expect(mockBuildEngines[0].startWatch).toHaveBeenCalledWith({ js: true, dts: false, lint: false });
|
|
654
|
-
// Runtime
|
|
655
|
-
expect(Worker.create).
|
|
654
|
+
// Runtime starts during start() after all engines ready
|
|
655
|
+
expect(Worker.create).toHaveBeenCalled();
|
|
656
|
+
expect(mockRuntimeProxies[0].start).toHaveBeenCalled();
|
|
656
657
|
});
|
|
657
658
|
|
|
658
659
|
// --- Acceptance: Server 패키지 dev 모드 실행 ---
|
|
@@ -833,7 +834,7 @@ describe("DevWatchOrchestrator", () => {
|
|
|
833
834
|
});
|
|
834
835
|
|
|
835
836
|
// --- Acceptance: Server batchComplete 시 runtime 시작 ---
|
|
836
|
-
it("starts runtime
|
|
837
|
+
it("starts runtime during start() after all engines ready", async () => {
|
|
837
838
|
setupDefaults(createConfig({
|
|
838
839
|
packages: { "service-server": { target: "server" } },
|
|
839
840
|
}));
|
|
@@ -843,18 +844,7 @@ describe("DevWatchOrchestrator", () => {
|
|
|
843
844
|
await orchestrator.initialize();
|
|
844
845
|
await orchestrator.start();
|
|
845
846
|
|
|
846
|
-
//
|
|
847
|
-
expect(Worker.create).not.toHaveBeenCalled();
|
|
848
|
-
|
|
849
|
-
// Get batchComplete handler
|
|
850
|
-
const rebuildInstance = vi.mocked(RebuildManager).mock.instances[0];
|
|
851
|
-
const onCall = vi.mocked(rebuildInstance.on).mock.calls.find((c) => c[0] === "batchComplete");
|
|
852
|
-
const batchHandler = onCall?.[1] as ((keys: string[]) => void) | undefined;
|
|
853
|
-
|
|
854
|
-
batchHandler?.(["service-server:build"]);
|
|
855
|
-
await new Promise((r) => setTimeout(r, 200));
|
|
856
|
-
|
|
857
|
-
// First runtime created via batchComplete
|
|
847
|
+
// Runtime starts during start(), not via batchComplete
|
|
858
848
|
expect(mockRuntimeProxies).toHaveLength(1);
|
|
859
849
|
expect(mockRuntimeProxies[0].start).toHaveBeenCalled();
|
|
860
850
|
});
|
|
@@ -870,12 +860,8 @@ describe("DevWatchOrchestrator", () => {
|
|
|
870
860
|
await orchestrator.initialize();
|
|
871
861
|
await orchestrator.start();
|
|
872
862
|
|
|
873
|
-
//
|
|
874
|
-
|
|
875
|
-
const onCall = vi.mocked(rebuildInstance.on).mock.calls.find((c) => c[0] === "batchComplete");
|
|
876
|
-
const batchHandler = onCall?.[1] as ((keys: string[]) => void) | undefined;
|
|
877
|
-
batchHandler?.(["service-server:build"]);
|
|
878
|
-
await new Promise((r) => setTimeout(r, 200));
|
|
863
|
+
// Runtime is now started during start()
|
|
864
|
+
expect(mockRuntimeProxies).toHaveLength(1);
|
|
879
865
|
|
|
880
866
|
await orchestrator.shutdown();
|
|
881
867
|
|
|
@@ -911,7 +897,7 @@ describe("DevWatchOrchestrator", () => {
|
|
|
911
897
|
});
|
|
912
898
|
|
|
913
899
|
// Unit: multiple server packages
|
|
914
|
-
it("creates engines for multiple server packages (runtimes start
|
|
900
|
+
it("creates engines for multiple server packages (runtimes start during start())", async () => {
|
|
915
901
|
setupDefaults(createConfig({
|
|
916
902
|
packages: {
|
|
917
903
|
"service-server": { target: "server" },
|
|
@@ -925,8 +911,8 @@ describe("DevWatchOrchestrator", () => {
|
|
|
925
911
|
await orchestrator.start();
|
|
926
912
|
|
|
927
913
|
expect(createBuildEngine).toHaveBeenCalledTimes(2);
|
|
928
|
-
// Runtimes
|
|
929
|
-
expect(Worker.create).
|
|
914
|
+
// Runtimes start during start() after all engines ready
|
|
915
|
+
expect(Worker.create).toHaveBeenCalledTimes(2);
|
|
930
916
|
});
|
|
931
917
|
|
|
932
918
|
// Unit: skips start when no packages
|
|
@@ -1027,16 +1013,7 @@ describe("DevWatchOrchestrator", () => {
|
|
|
1027
1013
|
await orchestrator.initialize();
|
|
1028
1014
|
await orchestrator.start();
|
|
1029
1015
|
|
|
1030
|
-
// Runtime starts
|
|
1031
|
-
expect(Worker.create).not.toHaveBeenCalled();
|
|
1032
|
-
|
|
1033
|
-
// Trigger batchComplete
|
|
1034
|
-
const rebuildInstance = vi.mocked(RebuildManager).mock.instances[0];
|
|
1035
|
-
const onCall = vi.mocked(rebuildInstance.on).mock.calls.find((c) => c[0] === "batchComplete");
|
|
1036
|
-
const batchHandler = onCall?.[1] as ((keys: string[]) => void) | undefined;
|
|
1037
|
-
batchHandler?.(["service-server:build"]);
|
|
1038
|
-
await new Promise((r) => setTimeout(r, 200));
|
|
1039
|
-
|
|
1016
|
+
// Runtime starts during start() with client ports available
|
|
1040
1017
|
expect(Worker.create).toHaveBeenCalled();
|
|
1041
1018
|
expect(mockRuntimeProxies[0].start).toHaveBeenCalledWith(
|
|
1042
1019
|
expect.objectContaining({
|
|
@@ -1059,13 +1036,7 @@ describe("DevWatchOrchestrator", () => {
|
|
|
1059
1036
|
await orchestrator.initialize();
|
|
1060
1037
|
await orchestrator.start();
|
|
1061
1038
|
|
|
1062
|
-
//
|
|
1063
|
-
const rebuildInstance = vi.mocked(RebuildManager).mock.instances[0];
|
|
1064
|
-
const onCall = vi.mocked(rebuildInstance.on).mock.calls.find((c) => c[0] === "batchComplete");
|
|
1065
|
-
const batchHandler = onCall?.[1] as ((keys: string[]) => void) | undefined;
|
|
1066
|
-
batchHandler?.(["service-server:build"]);
|
|
1067
|
-
await new Promise((r) => setTimeout(r, 200));
|
|
1068
|
-
|
|
1039
|
+
// Runtime starts during start(), standalone client ports excluded
|
|
1069
1040
|
expect(mockRuntimeProxies[0].start).toHaveBeenCalledWith(
|
|
1070
1041
|
expect.objectContaining({
|
|
1071
1042
|
clientPorts: {},
|
|
@@ -1112,13 +1083,7 @@ describe("DevWatchOrchestrator", () => {
|
|
|
1112
1083
|
await orchestrator.initialize();
|
|
1113
1084
|
await orchestrator.start();
|
|
1114
1085
|
|
|
1115
|
-
//
|
|
1116
|
-
const rebuildInstance = vi.mocked(RebuildManager).mock.instances[0];
|
|
1117
|
-
const onCall = vi.mocked(rebuildInstance.on).mock.calls.find((c) => c[0] === "batchComplete");
|
|
1118
|
-
const batchHandler = onCall?.[1] as ((keys: string[]) => void) | undefined;
|
|
1119
|
-
batchHandler?.(["service-server:build"]);
|
|
1120
|
-
await new Promise((r) => setTimeout(r, 200));
|
|
1121
|
-
|
|
1086
|
+
// Runtime starts during start() but client port unavailable → empty clientPorts
|
|
1122
1087
|
expect(mockRuntimeProxies[0].start).toHaveBeenCalledWith(
|
|
1123
1088
|
expect.objectContaining({
|
|
1124
1089
|
clientPorts: {},
|
|
@@ -1126,8 +1091,8 @@ describe("DevWatchOrchestrator", () => {
|
|
|
1126
1091
|
);
|
|
1127
1092
|
});
|
|
1128
1093
|
|
|
1129
|
-
// --- Acceptance: printServers
|
|
1130
|
-
it("
|
|
1094
|
+
// --- Acceptance: printServers는 start()에서 직접 호출되지 않는다 (serverReady 이벤트 경로만 사용) ---
|
|
1095
|
+
it("does not call printServers directly during start()", async () => {
|
|
1131
1096
|
setupDefaults(createConfig({
|
|
1132
1097
|
packages: {
|
|
1133
1098
|
"service-server": { target: "server" },
|
|
@@ -1140,12 +1105,9 @@ describe("DevWatchOrchestrator", () => {
|
|
|
1140
1105
|
await orchestrator.initialize();
|
|
1141
1106
|
await orchestrator.start();
|
|
1142
1107
|
|
|
1143
|
-
|
|
1144
|
-
|
|
1145
|
-
|
|
1146
|
-
);
|
|
1147
|
-
const serverClientsMap = vi.mocked(_printServers).mock.calls[0][1] as Map<string, string[]>;
|
|
1148
|
-
expect(serverClientsMap.get("service-server")).toEqual(["my-client"]);
|
|
1108
|
+
// printServers should NOT be called directly during start()
|
|
1109
|
+
// It should only be called via serverReady → _schedulePrintServers()
|
|
1110
|
+
expect(_printServers).not.toHaveBeenCalled();
|
|
1149
1111
|
});
|
|
1150
1112
|
|
|
1151
1113
|
// --- Acceptance: 서버 rebuild 시 프록시 재등록 ---
|
|
@@ -1162,14 +1124,7 @@ describe("DevWatchOrchestrator", () => {
|
|
|
1162
1124
|
await orchestrator.initialize();
|
|
1163
1125
|
await orchestrator.start();
|
|
1164
1126
|
|
|
1165
|
-
//
|
|
1166
|
-
const rebuildInstance = vi.mocked(RebuildManager).mock.instances[0];
|
|
1167
|
-
const onCall = vi.mocked(rebuildInstance.on).mock.calls.find((c) => c[0] === "batchComplete");
|
|
1168
|
-
const batchHandler = onCall?.[1] as ((keys: string[]) => void) | undefined;
|
|
1169
|
-
batchHandler?.(["service-server:build"]);
|
|
1170
|
-
await new Promise((r) => setTimeout(r, 200));
|
|
1171
|
-
|
|
1172
|
-
// First runtime created with clientPorts
|
|
1127
|
+
// First runtime created during start() with clientPorts
|
|
1173
1128
|
expect(mockRuntimeProxies).toHaveLength(1);
|
|
1174
1129
|
expect(mockRuntimeProxies[0].start).toHaveBeenCalledWith(
|
|
1175
1130
|
expect.objectContaining({
|
|
@@ -1177,11 +1132,14 @@ describe("DevWatchOrchestrator", () => {
|
|
|
1177
1132
|
}),
|
|
1178
1133
|
);
|
|
1179
1134
|
|
|
1180
|
-
// Trigger
|
|
1135
|
+
// Trigger batchComplete (rebuild after initial build)
|
|
1136
|
+
const rebuildInstance = vi.mocked(RebuildManager).mock.instances[0];
|
|
1137
|
+
const onCall = vi.mocked(rebuildInstance.on).mock.calls.find((c) => c[0] === "batchComplete");
|
|
1138
|
+
const batchHandler = onCall?.[1] as ((keys: string[]) => void) | undefined;
|
|
1181
1139
|
batchHandler?.(["service-server:build"]);
|
|
1182
1140
|
await new Promise((r) => setTimeout(r, 200));
|
|
1183
1141
|
|
|
1184
|
-
// Second runtime start should also have clientPorts
|
|
1142
|
+
// Second runtime start (rebuild) should also have clientPorts
|
|
1185
1143
|
expect(mockRuntimeProxies).toHaveLength(2);
|
|
1186
1144
|
expect(mockRuntimeProxies[0].terminate).toHaveBeenCalled();
|
|
1187
1145
|
expect(mockRuntimeProxies[1].start).toHaveBeenCalledWith(
|