Fix all openspec validation errors (45/45 pass)
Main specs (7): Converted from delta format (## ADDED/MODIFIED) to proper main spec format (## Purpose + ## Requirements) Changes (3): Added missing spec files for e2e-test-reorganization, journal-poi-details, and mobile-nearby-sync Mobile testing: Added missing scenario for "No Vitest" requirement Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
8682ec8140
commit
572d240ed1
11 changed files with 94 additions and 7 deletions
|
|
@ -0,0 +1,16 @@
|
|||
## MODIFIED Requirements
|
||||
|
||||
### Requirement: Planner E2E test infrastructure
|
||||
The Planner E2E test suite SHALL mock BRouter by default, split tests by feature file, and provide shared test helpers for common setup patterns.
|
||||
|
||||
#### Scenario: BRouter mocked by default
|
||||
- **WHEN** a Planner E2E test runs
|
||||
- **THEN** BRouter is mocked via a shared Playwright fixture unless the test explicitly opts into the real BRouter endpoint
|
||||
|
||||
#### Scenario: Tests split by feature file
|
||||
- **WHEN** the Planner E2E test suite is executed
|
||||
- **THEN** tests are organized into focused files by feature area (session, routing, multi-day, overlays, coloring) instead of a single monolithic test file
|
||||
|
||||
#### Scenario: Shared test helpers
|
||||
- **WHEN** a Planner E2E test needs to create a session and wait for connection
|
||||
- **THEN** it uses a shared helper function that handles session creation, navigation, and waiting for the connected state
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
## MODIFIED Requirements
|
||||
|
||||
### Requirement: POI metadata on route detail waypoints
|
||||
The Journal route detail page SHALL display POI metadata (phone, address, website, opening hours) for waypoints that have associated OpenStreetMap POI data.
|
||||
|
||||
#### Scenario: POI metadata displayed on waypoints
|
||||
- **WHEN** a route detail page is loaded and a waypoint has POI metadata from the Planner
|
||||
- **THEN** the waypoint displays the POI name, icon, and category alongside its coordinates
|
||||
|
||||
#### Scenario: Phone, address, and website shown
|
||||
- **WHEN** a waypoint has POI metadata including phone, address, or website
|
||||
- **THEN** those details are shown in the waypoint detail section with appropriate links (tel: for phone, mailto: or https: for website)
|
||||
|
||||
#### Scenario: Waypoints without POI data display normally
|
||||
- **WHEN** a waypoint on the route detail page has no associated POI metadata
|
||||
- **THEN** the waypoint displays as before with coordinates and name only, with no empty POI sections shown
|
||||
|
|
@ -24,3 +24,7 @@ The mobile app SHALL use Maestro for end-to-end flow testing on real/emulated de
|
|||
|
||||
### Requirement: No Vitest for mobile
|
||||
Vitest SHALL NOT be used for the mobile app. React Native Testing Library has incomplete Vitest support — Jest with jest-expo is the stable, Expo-recommended choice.
|
||||
|
||||
#### Scenario: Vitest not used
|
||||
- **WHEN** unit or component tests are added to the mobile app
|
||||
- **THEN** they use Jest with jest-expo preset, not Vitest
|
||||
|
|
|
|||
|
|
@ -0,0 +1,23 @@
|
|||
## ADDED Requirements
|
||||
|
||||
### Requirement: BLE nearby route sync
|
||||
The mobile app SHALL discover nearby devices via Bluetooth LE and transfer route data (waypoints + GPX geometry) directly between devices without internet connectivity.
|
||||
|
||||
#### Scenario: BLE device discovery
|
||||
- **WHEN** a user enables nearby sync on the route detail screen
|
||||
- **THEN** the app advertises via BLE and discovers other nearby devices that have the same route open
|
||||
|
||||
#### Scenario: Route transfer
|
||||
- **WHEN** a nearby device with a newer version of the route is discovered
|
||||
- **THEN** the user is prompted to accept the update and the route data is transferred via chunked BLE messages
|
||||
|
||||
#### Scenario: Version check before sync
|
||||
- **WHEN** two devices discover each other via BLE
|
||||
- **THEN** they exchange route version numbers and only the device with the older version is offered the update
|
||||
|
||||
### Requirement: QR waypoint sharing
|
||||
The mobile app SHALL support sharing waypoint coordinates via QR code as a fallback when BLE is unavailable or impractical.
|
||||
|
||||
#### Scenario: QR waypoint sharing
|
||||
- **WHEN** a user taps "Share via QR" on a route
|
||||
- **THEN** a QR code is generated containing compressed waypoint coordinates that another device can scan to receive the waypoints
|
||||
Loading…
Add table
Add a link
Reference in a new issue