itsulu-blog-publisher/e2e
Nicholas Riegel acfa1d93d7 feat: establish Phase 3 E2E testing infrastructure with Playwright
Created comprehensive E2E test suite for ITSulu Blog Publisher using Playwright
and Runboat. Includes:

PHASE3_ROADMAP.md:
- Goals for E2E coverage (10-30 scenarios)
- Performance benchmark targets (latency, tokens, queries, throughput)
- Implementation plan with layer-by-layer breakdown
- Success criteria and SLO targets
- Runboat integration details for CI/CD

e2e/ directory structure:
- conftest.py: Runboat polling, auth fixtures, page fixture
- requirements.txt: pytest, playwright, requests
- test_generation.py: On-demand generation workflows (5 tests)
- test_scheduling.py: Schedule slot configuration and execution (6 tests)
- test_error_recovery.py: Error handling and email notifications (8 tests)

Total: 19 E2E test scenarios covering:
- On-demand post generation with auto-publish
- Scheduled generation with topic queue
- Error recovery and retry mechanism
- Email notifications with correct content
- Social media copy generation
- Concurrent post generation
- Progress feedback during API calls

Tests use:
- Playwright sync API with 30s timeout (Odoo JS rendering)
- Runboat polling with 180s timeout (instance cold-start)
- Session-scoped auth to avoid repeated 30s logins
- Data-test-id selectors where available, fallback to get_by_*
- Proper wait_for_load_state() for async operations

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-05-30 00:50:43 -04:00
..
conftest.py feat: establish Phase 3 E2E testing infrastructure with Playwright 2026-05-30 00:50:43 -04:00
requirements.txt feat: establish Phase 3 E2E testing infrastructure with Playwright 2026-05-30 00:50:43 -04:00
test_error_recovery.py feat: establish Phase 3 E2E testing infrastructure with Playwright 2026-05-30 00:50:43 -04:00
test_generation.py feat: establish Phase 3 E2E testing infrastructure with Playwright 2026-05-30 00:50:43 -04:00
test_scheduling.py feat: establish Phase 3 E2E testing infrastructure with Playwright 2026-05-30 00:50:43 -04:00