feat(ios): iOS e2e support — Kotlin Native SDK + simulator driver + test-ios (#38)

* feat(ios): add simulator management package

* feat(testrun): add iOS platform path (simctl launch + direct TCP)

* feat(cli): add --ios-device flag and IosDevice option

* feat(sdk-ios): add Kotlin Native iOS SDK (TCP agent + POSIX socket + dispatch pauser)

* feat(folio-ios): wire SanderlingIos.start() in MainViewController

* feat(folio-ios): add test-ios justfile recipe

* fix(sdk-ios): remove unavailable C macros; manual byte swap + no-cast warnings

* fix(testrun): simctl-first launch order for iOS; Maestro init after SDK connects
This commit is contained in:
pj authored and GitHub committed 2026-04-23 17:29:53 +07:00
1 parent 88db0cbea8
commit 007dcddd69
14 files changed
+567 -26

No files matched your search

+18
View File
@@ -97,3 +97,21 @@ test:
--duration "{{duration}}" \
--seed "{{seed}}" \
--output "{{output}}"
# Build + install + run sanderling spec on iOS simulator.
test-ios:
#!/usr/bin/env bash
set -euo pipefail
just ios
ios_device_flag=()
if [[ -n "{{ios_device}}" ]]; then
ios_device_flag=(--ios-device "{{ios_device}}")
fi
"{{sanderling}}" test \
--platform ios \
--spec "{{justfile_directory()}}/sanderling/spec.ts" \
--bundle-id app.folio \
"${ios_device_flag[@]}" \
--duration "{{duration}}" \
--seed "{{seed}}" \
--output "{{output}}"