Skip to content

v1.6.0 CI hardening: dual-bridge integration, UI tests, lint, coverage, widget+iPad build #83

@tashda

Description

@tashda

Why

The v1.6.0 multi-bridge release significantly enlarges the test surface — concurrent BridgeRegistry sessions, merged-mode aggregation, per-bridge UI, typed bridge-aware navigation — and our CI is not currently exercising it adequately:

  • Multi-bridge integration coverage: Full CI starts a single mock bridge on localhost:8080. The dual-bridge docker stack added in Multi-bridge Phase 1.6: Test-center extension for dual-bridge fixtures #67 (localhost:8082, seeder-2) is unused by CI; cross-bridge correctness is verified only by unit tests with mocked sessions.
  • UI tests dormant: 9 UI test files (Connection, Devices, Groups, Home, Logs, Settings) run nowhere because of a redesign-era pause. Multi-bridge introduces switcher, Saved Bridges, bridge picker, attribution badges, per-bridge Settings — none of it is exercised by CI.
  • ConnectionHistoryTests skipped on Fast CI: substrate the SavedBridges promotion (Multi-bridge Phase 1.1: Promote ConnectionHistory into SavedBridges model #62) sits on; gate doesn't verify our headline model.
  • No iPad build: merged-mode UI may break on iPad split layouts; Multi-bridge Phase 2.9: Polish — filter chips, color picker, iPad, perf #77 carries area:ipad.
  • No CLAUDE.md mechanical enforcement: "No Stepper", "no trailing ellipsis", "use DesignTokens" have zero CI teeth.
  • No widget-target verification: a new file importing AppEnvironment that wasn't added to widget membershipExceptions only fails at actual widget compile.
  • No coverage signal: both plans set codeCoverage: false.

What

Pri Task Where
P0 Dual-bridge mock startup script + MultiBridgeIntegrationTests exercising BridgeRegistry against both Full CI
P0 Re-enable UI tests in Full CI Full CI
P1 Fix ConnectionHistoryTests isolation; remove from skip list Fast CI
P1 Add iPad simulator build (build-only, no tests) Full CI
P2 grep-based lint (Stepper, /... in UI strings) Fast CI
P2 Build widget target explicitly Fast CI
P3 Emit coverage % in Fast CI step summary Fast CI
P3 Address remaining concurrency-skip tests (HomeLayoutStoreTests, NotificationPreferencesTests) both

Out of scope (tracked separately): Keychain abstraction for the two ConnectionConfigTests/testSaveAndLoad* skips and the related Z2MIntegrationTests/testReloadedPersistedConfigConnectsAndReceivesBridgeInfo skip — that needs a Keychain protocol + in-memory test double, multi-day refactor.

Metadata

Metadata

Assignees

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions