# Implementation Plan - Testing Infrastructure ## Phase 1: Environment & Mock Server [checkpoint: 1a46341] - [x] Task: Scaffold Docker environment 23a59b9 - [x] Create test_data/ directory. - [x] Create docker-compose.test.yml with SilverBullet and an Nginx container serving test_data/. - [x] Task: Integration Test Scaffolding 2bfd9d5 - [x] Create tests/integration_test.ts that uses the actual ts-ics parser on files in test_data/. - [x] Task: Conductor - User Manual Verification 'Environment & Mock Server' (Protocol in workflow.md) - [x] Ensure use of `docker-compose -f docker-compose.test.yml down -v` for clean starts. ## Phase 2: Playwright E2E Setup [checkpoint: e80e4fb] - [x] Task: Initialize Playwright 319a955 - [x] Setup Playwright with necessary configurations for Docker (headless, CI mode). - [x] Task: Implement sync smoke test ed15079 - [x] Create tests/e2e/sync.spec.ts. - [x] Automate login, plug installation (icalendar.plug.js), and triggering the "iCalendar: Sync" command. - [x] Implement console listener to fail on Error or TypeError. - [x] Task: Conductor - User Manual Verification 'Playwright E2E Setup' (Protocol in workflow.md) ## Phase 3: Validation & Bug Fix - [x] Task: Verify Infrastructure against current bug 2bfd9d5 - [x] Add the problematic .ics to test_data/. - [x] Confirm that E2E and Integration tests fail with Unknown RRULE property 'WORKWEEKSTART'. - [x] Task: Implement Fix for WORKWEEKSTART a8755eb - [x] Update RRULE_KEY_MAP in icalendar.ts. - [x] Run tests again to confirm they pass. - [~] Task: Conductor - User Manual Verification 'Validation & Bug Fix' (Protocol in workflow.md) - [ ] Update Playwright to run in headed mode via xvfb-run per user request.