The phone gets its first witnesses — KanbanMobileUITests drive the MVP against a fixture board

The mobile app's first runtime coverage, and its first runtime, full stop: the suite launches the real app over a scratch directory seeded from rich-board.kanban via LANEWORK_LOCAL_ROOT, walks boards to lanes to cards to the card editor, retitles a card and polls the frontmatter on disk until the write lands, then taps through the Settings About section to see the changelog and license actually render. No iCloud account, no metadata query — the DEBUG override is the whole harness.

Claude-Session: https://claude.ai/code/session_01SR4XGjmBE16ZUYWpfFHXwY
This commit is contained in:
2026-08-08 10:22:11 -04:00
parent 209c991030
commit ce8a446658
4 changed files with 284 additions and 0 deletions
+37
View File
@@ -288,6 +288,31 @@ targets:
GENERATE_INFOPLIST_FILE: true
SWIFT_STRICT_CONCURRENCY: complete
# MARK: - iPhone UI tests
#
# The mobile app's first runtime coverage: launches the real app against a plain directory
# (`LANEWORK_LOCAL_ROOT`, `CloudHome`'s DEBUG override) seeded from a copy of
# `Fixtures/Valid/rich-board.kanban`, so these tests need no iCloud account and touch nothing but
# a scratch directory the test itself creates and owns. `Fixtures/` rides in as a folder reference
# for the same reason `KanbanTests`' copy does — a fixture is a board, and a board is directories
# on disk.
KanbanMobileUITests:
type: bundle.ui-testing
platform: iOS
sources:
- KanbanMobileUITests
- path: Fixtures
type: folder
buildPhase: resources
dependencies:
- target: KanbanMobile
settings:
base:
PRODUCT_BUNDLE_IDENTIFIER: dev.rzen.indie.KanbanMobileUITests
GENERATE_INFOPLIST_FILE: true
SWIFT_STRICT_CONCURRENCY: complete
schemes:
# `xcodebuild … -scheme Kanban` is the established command for this repo, and it now means the
# only app there is.
@@ -318,3 +343,15 @@ schemes:
config: Debug
archive:
config: Release
# The phone app's own scheme — otherwise auto-generated, declared here only because it needs a
# test action pointed at `KanbanMobileUITests` rather than xcodegen's per-target default.
KanbanMobile:
build:
targets:
KanbanMobile: all
test:
config: Debug
gatherCoverageData: false
targets:
- KanbanMobileUITests