# 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.
