test(provider-scenarios): open deadline scenarios without the test IME

Merged
TH
3d ago
+3-0

Summary

composite-deadline.test.ts › "routed batch install…" failed whenever android/ime-helper/dist existed locally (after pnpm build:android), with Unscripted Android provider call: shell settings get secure default_input_method. CI never builds that directory, so CI stayed green.

Root cause: the scenario opens an emulator session, and shouldActivateAndroidTestIme defaults to on for emulators. activateAndroidTestIme then resolves the bundled IME helper from the repo's build output. With the artifact present it installs the helper and reads the default input method, which the deadline scenario never scripts. Without the artifact it returns the helper-unavailable outcome and skips the IME.

Fix: the three deadline-scenario opens pass the product's own testIme: false opt-out, as android-tv-remote.test.ts does. These scenarios test request deadlines, not text entry. No production change and no new seam. Production reads the bundled artifact on purpose; the provider seam imeHelperArtifact stays for providers. 1 file, +3 lines. I searched tests for other dependencies on */dist helper output and found none. The remaining dist hits are the main package build, which CI produces.

Validation

  • Base 9935ef51c2 with a minimal artifact in android/ime-helper/dist: 1 failed, 3 passed, with the error above. With the artifact removed, 4 passed.
  • Head 04799a5ddc, same command, artifact present and absent: 4 passed both ways.
  • The full provider-integration project (66 files, 213 tests) and unit-core for packages/platform-android and packages/daemon (4897 tests) pass with the artifact present.
  • Mutation: changing the daemon_request_timeout reason in host-kit/src/internal/request-cancel.ts fails all 4 deadline tests. I reverted it.
  • pnpm check:affected --run --head 04799a5ddc: all runnable checks passed, exactCommit=true. An earlier run hit the 5s default timeout on the first test while the host load average was above 300. Later runs were cancelled while queued on the validation lock. The unchanged commit then passed.
  • Skipped: GitHub-owned Integration, Coverage, and device lanes. The pnpm gate unit-ci gate was not run locally.

🤖 Generated with Claude Code