98 lines
3.0 KiB
Plaintext
98 lines
3.0 KiB
Plaintext
|
|
Task 28: Playwright E2E Tests — Shift Sign-Up Flow
|
||
|
|
====================================================
|
||
|
|
|
||
|
|
STATUS: Code Delivery Complete ✅
|
||
|
|
TESTS: Require Docker Environment (Blocked) ⏸️
|
||
|
|
|
||
|
|
FILES CREATED:
|
||
|
|
--------------
|
||
|
|
✅ frontend/e2e/shifts.spec.ts (310 lines)
|
||
|
|
- 4 comprehensive E2E test scenarios
|
||
|
|
- Sign up and cancel workflow
|
||
|
|
- Full capacity enforcement
|
||
|
|
- Past shift validation
|
||
|
|
- Progress bar visual verification
|
||
|
|
|
||
|
|
TEST SCENARIOS:
|
||
|
|
---------------
|
||
|
|
1. should allow manager to sign up and cancel for shift
|
||
|
|
- Create shift with capacity 3
|
||
|
|
- Sign up → verify "1/3 spots filled"
|
||
|
|
- Cancel → verify "0/3 spots filled"
|
||
|
|
- Screenshot: task-28-shift-signup.png
|
||
|
|
|
||
|
|
2. should disable sign-up when shift at full capacity
|
||
|
|
- Create shift with capacity 1
|
||
|
|
- Manager signs up → "1/1 filled"
|
||
|
|
- Member1 cannot sign up (button hidden)
|
||
|
|
- Screenshot: task-28-full-capacity.png
|
||
|
|
|
||
|
|
3. should not allow sign-up for past shifts
|
||
|
|
- Create shift in past (yesterday)
|
||
|
|
- Verify "Past" badge visible
|
||
|
|
- Verify "Sign Up" button NOT rendered
|
||
|
|
|
||
|
|
4. should update progress bar as sign-ups increase
|
||
|
|
- Create shift with capacity 2
|
||
|
|
- Sign up as manager → 1/2 (50%)
|
||
|
|
- Sign up as member1 → 2/2 (100%)
|
||
|
|
- Verify progress bar updates
|
||
|
|
|
||
|
|
HELPERS IMPLEMENTED:
|
||
|
|
--------------------
|
||
|
|
- loginAs(email, password) — Full Keycloak OIDC flow with club picker
|
||
|
|
- logout() — Sign out and return to login page
|
||
|
|
- createShift(shiftData) — Navigate to /shifts/new, fill form, submit
|
||
|
|
|
||
|
|
ENVIRONMENT REQUIREMENTS:
|
||
|
|
-------------------------
|
||
|
|
Docker Compose stack running:
|
||
|
|
- postgres:5432 (database)
|
||
|
|
- keycloak:8080 (authentication)
|
||
|
|
- backend:5000 (API)
|
||
|
|
- frontend:3000 (Next.js)
|
||
|
|
|
||
|
|
BLOCKING ISSUE:
|
||
|
|
---------------
|
||
|
|
Docker daemon not running in development environment:
|
||
|
|
$ docker ps
|
||
|
|
failed to connect to the docker API at unix:///var/run/docker.sock
|
||
|
|
|
||
|
|
This blocks test execution but NOT code delivery.
|
||
|
|
|
||
|
|
VERIFICATION:
|
||
|
|
-------------
|
||
|
|
✅ Tests discovered by Playwright:
|
||
|
|
$ bunx playwright test --list
|
||
|
|
- 4 tests found in shifts.spec.ts
|
||
|
|
- Total: 20 tests across 4 files
|
||
|
|
|
||
|
|
✅ TypeScript compilation: No errors
|
||
|
|
✅ Test structure follows auth.spec.ts pattern
|
||
|
|
✅ Selectors match actual UI components
|
||
|
|
|
||
|
|
EXPECTED BEHAVIOR (when Docker available):
|
||
|
|
------------------------------------------
|
||
|
|
$ bunx playwright test shifts.spec.ts
|
||
|
|
|
||
|
|
Expected: 4/4 tests pass
|
||
|
|
Runtime: ~60-90 seconds (Keycloak auth + shift operations)
|
||
|
|
Screenshots: Automatically saved to .sisyphus/evidence/ on success
|
||
|
|
|
||
|
|
NEXT STEPS:
|
||
|
|
-----------
|
||
|
|
1. Start Docker Compose: docker compose up -d
|
||
|
|
2. Wait for services healthy: docker compose ps
|
||
|
|
3. Run tests: bunx playwright test shifts.spec.ts
|
||
|
|
4. Evidence screenshots generated automatically
|
||
|
|
|
||
|
|
DELIVERABLE STATUS:
|
||
|
|
-------------------
|
||
|
|
✅ Code complete and tested for syntax
|
||
|
|
✅ Tests align with task requirements
|
||
|
|
✅ Follows established E2E test patterns
|
||
|
|
⏸️ Execution blocked by environment (non-code issue)
|
||
|
|
|
||
|
|
Per Task 13 precedent: Code delivery acceptable when Docker unavailable.
|
||
|
|
Tests ready to execute when environment available.
|