also looking at this
test(mobile-e2e): prove iOS location settles, and that Zig served it
#213
6 files
+157
-28
| @@ -30,10 +30,17 @@ bun run test:mobile-e2e:ios | ||
| 30 | 30 | ``` |
| 31 | 31 | |
| 32 | 32 | ``` |
| 33 | ok ios-shim — 5/5 cases, no zig | |
| 34 | ok ios-runtime — 5/5 cases, zig served clipboardRead, clipboardWrite, getCurrentPosition, getDeviceInfo, log, share | |
| 33 | ok ios-shim — 6/6 cases, no zig | |
| 34 | ok ios-runtime — 6/6 cases, zig served checkPermission, clipboardRead, clipboardWrite, getCurrentPosition, getDeviceInfo, log, requestPermission, share | |
| 35 | 35 | ``` |
| 36 | 36 | |
| 37 | Before launch the harness grants the app location permission with | |
| 38 | `simctl privacy` and puts the simulator at a fixed coordinate with | |
| 39 | `simctl location`. The page must report that coordinate back from | |
| 40 | `getCurrentPosition`. On the runtime leg, Zig must also serve every action | |
| 41 | under test itself: its log names each action it hands back to Swift, and only | |
| 42 | `requestPermission`, whose location answer Swift owns, may appear there. | |
| 43 | ||
| 37 | 44 | Android needs JDK 17, Gradle 8.11.1, an Android SDK with `platforms;android-36` |
| 38 | 45 | and `build-tools;36.0.0`, a booted emulator or attached device, and the Zig |
| 39 | 46 | Android libraries — it runs twice as well, once with `libcraft.so` packaged |