@@ -17,8 +17,12 @@ vi.mock('../../../platforms/ios/runner-client.ts', async (importOriginal) => {
1717 const actual = await importOriginal < typeof import ( '../../../platforms/ios/runner-client.ts' ) > ( ) ;
1818 return {
1919 ...actual ,
20+ prepareIosRunner : vi . fn ( async ( ) => ( {
21+ runner : { currentUptimeMs : 42 } ,
22+ connectMs : 3 ,
23+ healthCheckMs : 3 ,
24+ } ) ) ,
2025 prewarmIosRunnerSession : vi . fn ( ) ,
21- runIosRunnerCommand : vi . fn ( async ( ) => ( { currentUptimeMs : 42 } ) ) ,
2226 stopIosRunnerSession : vi . fn ( async ( ) => { } ) ,
2327 } ;
2428} ) ;
@@ -96,8 +100,8 @@ import { dispatchCommand, resolveTargetDevice } from '../../../core/dispatch.ts'
96100import { ensureDeviceReady } from '../../device-ready.ts' ;
97101import { applyRuntimeHintsToApp , clearRuntimeHintsFromApp } from '../../runtime-hints.ts' ;
98102import {
103+ prepareIosRunner ,
99104 prewarmIosRunnerSession ,
100- runIosRunnerCommand ,
101105 stopIosRunnerSession ,
102106} from '../../../platforms/ios/runner-client.ts' ;
103107import { runMacOsAlertAction } from '../../../platforms/ios/macos-helper.ts' ;
@@ -120,7 +124,7 @@ const mockEnsureDeviceReady = vi.mocked(ensureDeviceReady);
120124const mockApplyRuntimeHints = vi . mocked ( applyRuntimeHintsToApp ) ;
121125const mockClearRuntimeHints = vi . mocked ( clearRuntimeHintsFromApp ) ;
122126const mockPrewarmIosRunnerSession = vi . mocked ( prewarmIosRunnerSession ) ;
123- const mockRunIosRunnerCommand = vi . mocked ( runIosRunnerCommand ) ;
127+ const mockPrepareIosRunner = vi . mocked ( prepareIosRunner ) ;
124128const mockStopIosRunner = vi . mocked ( stopIosRunnerSession ) ;
125129const mockDismissMacOsAlert = vi . mocked ( runMacOsAlertAction ) ;
126130const mockSettleSimulator = vi . mocked ( settleIosSimulator ) ;
@@ -151,8 +155,12 @@ beforeEach(() => {
151155 mockClearRuntimeHints . mockReset ( ) ;
152156 mockClearRuntimeHints . mockResolvedValue ( undefined ) ;
153157 mockPrewarmIosRunnerSession . mockReset ( ) ;
154- mockRunIosRunnerCommand . mockReset ( ) ;
155- mockRunIosRunnerCommand . mockResolvedValue ( { currentUptimeMs : 42 } ) ;
158+ mockPrepareIosRunner . mockReset ( ) ;
159+ mockPrepareIosRunner . mockResolvedValue ( {
160+ runner : { currentUptimeMs : 42 } ,
161+ connectMs : 3 ,
162+ healthCheckMs : 3 ,
163+ } ) ;
156164 mockStopIosRunner . mockReset ( ) ;
157165 mockStopIosRunner . mockResolvedValue ( undefined ) ;
158166 mockDismissMacOsAlert . mockReset ( ) ;
@@ -2130,11 +2138,12 @@ test('prepare ios-runner starts the XCTest runner on an explicit iOS selector',
21302138 expect ( mockEnsureDeviceReady ) . toHaveBeenCalledWith (
21312139 expect . objectContaining ( { platform : 'ios' , id : 'sim-1' } ) ,
21322140 ) ;
2133- expect ( mockRunIosRunnerCommand ) . toHaveBeenCalledTimes ( 1 ) ;
2134- expect ( mockRunIosRunnerCommand ) . toHaveBeenCalledWith (
2141+ expect ( mockPrepareIosRunner ) . toHaveBeenCalledTimes ( 1 ) ;
2142+ expect ( mockPrepareIosRunner ) . toHaveBeenCalledWith (
21352143 expect . objectContaining ( { platform : 'ios' , id : 'sim-1' } ) ,
2136- { command : 'uptime' } ,
21372144 expect . objectContaining ( {
2145+ buildTimeoutMs : 240000 ,
2146+ healthTimeoutMs : 90000 ,
21382147 logPath : expect . stringMatching ( / d a e m o n \. l o g $ / ) ,
21392148 requestId : 'prepare-request' ,
21402149 } ) ,
@@ -2145,6 +2154,8 @@ test('prepare ios-runner starts the XCTest runner on an explicit iOS selector',
21452154 deviceId : 'sim-1' ,
21462155 deviceName : 'iPhone 17 Pro' ,
21472156 kind : 'simulator' ,
2157+ connectMs : 3 ,
2158+ healthCheckMs : 3 ,
21482159 runner : { currentUptimeMs : 42 } ,
21492160 message : 'Prepared iOS runner: iPhone 17 Pro' ,
21502161 } ) ;
@@ -2181,7 +2192,7 @@ test('prepare ios-runner rejects non-iOS devices', async () => {
21812192 expect ( response . error . code ) . toBe ( 'UNSUPPORTED_OPERATION' ) ;
21822193 expect ( response . error . message ) . toBe ( 'prepare ios-runner is only supported on iOS' ) ;
21832194 }
2184- expect ( mockRunIosRunnerCommand ) . not . toHaveBeenCalled ( ) ;
2195+ expect ( mockPrepareIosRunner ) . not . toHaveBeenCalled ( ) ;
21852196} ) ;
21862197
21872198test ( 'prepare requires the ios-runner subcommand' , async ( ) => {
@@ -2208,7 +2219,7 @@ test('prepare requires the ios-runner subcommand', async () => {
22082219 expect ( response . error . message ) . toBe ( 'prepare requires a subcommand: ios-runner' ) ;
22092220 }
22102221 expect ( mockResolveTargetDevice ) . not . toHaveBeenCalled ( ) ;
2211- expect ( mockRunIosRunnerCommand ) . not . toHaveBeenCalled ( ) ;
2222+ expect ( mockPrepareIosRunner ) . not . toHaveBeenCalled ( ) ;
22122223} ) ;
22132224
22142225test ( 'open web URL on iOS device session without active app falls back to Safari' , async ( ) => {
0 commit comments