docs(folio): document web target and iOS sanderling test recipe

After the KMP refactor folio also runs on wasmJs and the justfile exposes
just web, just web-build, and just test-ios. Surface all three.
This commit is contained in:
pj committed 2026-05-15 17:00:12 +05:30
1 parent c0a2b0cd1e
commit 64cdd8c991
1 file changed
+23 -2
+23 -2
View File
@@ -2,8 +2,8 @@
A minimal Kotlin Multiplatform personal-ledger app: login with demo A minimal Kotlin Multiplatform personal-ledger app: login with demo
credentials, create accounts, add credits and debits. Shared UI across credentials, create accounts, add credits and debits. Shared UI across
Android and iOS via Compose Multiplatform. Doubles as the example Android, iOS, and web (wasmJs via Compose for Web). Doubles as the
sanderling runs its property-based specs against. example sanderling runs its property-based specs against.
## Stack ## Stack
@@ -39,6 +39,16 @@ IOS_DEVICE="iPhone 15" just ios # pick a different simulator
builds the KMP framework (`Shared.framework` from `:app:shared`), links it builds the KMP framework (`Shared.framework` from `:app:shared`), links it
into the SwiftUI host, installs, and launches. into the SwiftUI host, installs, and launches.
## Web
```sh
just web # webpack dev server with COOP/COEP headers
just web-build # produce a webpack distributable bundle
```
`just web` runs `:app:webApp:wasmJsBrowserDevelopmentRun --continuous`, so
edits to shared code reload in the browser.
## Demo credentials ## Demo credentials
``` ```
@@ -68,6 +78,17 @@ DURATION=5m
Traces land in `./sanderling/runs/<timestamp>/`. Traces land in `./sanderling/runs/<timestamp>/`.
## Run a sanderling test (iOS)
```sh
just test-ios # default simulator: iPhone 17 Pro
IOS_DEVICE="iPhone 15" just test-ios # pick a different simulator
```
`just test-ios` boots the simulator if needed, runs `just ios` to install
and launch the app, then invokes `sanderling test --platform ios`. Same
`DURATION`, `SEED`, and `OUTPUT` env vars as the Android target.
## How it connects to sanderling ## How it connects to sanderling
- Each screen sets a stable Compose `testTag` (`HomeScreen`, `AccountCard`, - Each screen sets a stable Compose `testTag` (`HomeScreen`, `AccountCard`,