Skip to content

Migrate to vitest: session sub-handlers + request-router #283

Description

@thymikee

Step 3 of 4: Drop test-only DI with vitest module mocking

Migrate session sub-handlers and request-router. This is the largest step — these files are tightly coupled and must be migrated together.

Files to migrate (~35 DI params removed)

src/daemon/handlers/session-close.ts (6 optional + 3 required threaded)

  • Remove optional: stopIosRunner?, dismissMacOsAlert?, clearRuntimeHints?, settleSimulator?, shutdownSimulator?, shutdownAndroidEmulator?
  • Remove required threaded typeof params from internal functions (shutdownSimulator, stopIosRunner, dismissMacOsAlert)

src/daemon/handlers/session-open.ts (5 optional + ~9 required threaded)

  • Remove optional: applyRuntimeHints?, clearRuntimeHints?, stopIosRunner?, settleSimulator?, resolveAndroidPackageForOpen?
  • Remove required threaded: dispatch, ensureReady, resolveDevice, applyRuntimeHints, stopIosRunner, settleSimulator from completeOpenCommand, relaunchCloseApp, and other internal functions

src/daemon/handlers/session-deploy.ts (3 required threaded)

  • Remove ensureReady: typeof ensureDeviceReady, resolveDevice: typeof resolveTargetDevice — direct imports
  • deployOps stays (real composition, not test DI)

src/daemon/handlers/session-device-utils.ts (3 required threaded)

  • Remove ensureReadyFn, resolveTargetDeviceFn from resolveCommandDevice
  • Remove resolveTargetDeviceFn from refreshSessionDeviceIfNeeded

src/daemon/handlers/session-runtime.ts (1 required threaded)

  • Remove clearRuntimeHints: typeof clearRuntimeHintsFromApp

src/daemon/handlers/record-trace-recording.ts (1 required threaded)

  • Remove runIosRunnerCommand: typeof runIosRunnerCommand

src/daemon/request-router.ts (5 optional in RequestRouterDeps)

  • Remove dispatchCommand?, snapshotAndroidUi?, reopenAndroidApp?, readAndroidAppState?, execCommand?
  • android-system-dialog.ts already migrated in step 1, so these just need test rewrites

Tests to rewrite:

  • handlers/__tests__/session.test.ts (partially — sub-handler tests)
  • handlers/__tests__/session-reinstall.test.ts
  • handlers/__tests__/session-device-utils.test.ts
  • __tests__/request-router-*.test.ts

Validation

  • pnpm typecheck
  • Both test runners pass
  • Every session sub-handler uses direct imports, no threaded typeof params

Depends on #282. Part of migration: #1#2→**#3**→#4

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions