- Quick start guide for continuation - File structure overview - Current status summary - Key documents reference - Workflow patterns - Troubleshooting guide - Metrics and next steps
305 lines
8.9 KiB
Markdown
305 lines
8.9 KiB
Markdown
# Sisyphus Boulder Workflow — CTS Herd + Playwright E2E Testing
|
|
|
|
**Project**: CTS Presenter App — Church Service Preparation Tool
|
|
**Phase**: E2E Testing with Playwright on Laravel Herd
|
|
**Status**: 7/24 tasks complete (29.2%) — Wave 1-2 Complete, Wave 3 Partial
|
|
|
|
---
|
|
|
|
## QUICK START
|
|
|
|
### For Continuing This Work
|
|
|
|
1. **Read the continuation guide first**:
|
|
```bash
|
|
cat .sisyphus/CONTINUATION_GUIDE.md
|
|
```
|
|
|
|
2. **Verify environment**:
|
|
```bash
|
|
cd /Users/thorsten/AI/cts-work
|
|
curl -s -o /dev/null -w "%{http_code}" http://cts-work.test/login # Should return 200
|
|
npx playwright test # Should pass 13 tests
|
|
php artisan test # Should pass 174 tests
|
|
```
|
|
|
|
3. **Continue with next tasks**:
|
|
- See `CONTINUATION_GUIDE.md` for detailed instructions
|
|
- See `SESSION_SUMMARY.md` for current state
|
|
- See `plans/cts-herd-playwright.md` for full plan
|
|
|
|
---
|
|
|
|
## FILE STRUCTURE
|
|
|
|
```
|
|
.sisyphus/
|
|
├── README.md # This file — start here
|
|
├── CONTINUATION_GUIDE.md # Complete guide for continuing work
|
|
├── SESSION_SUMMARY.md # Current session summary
|
|
├── boulder.json # Boulder state tracking
|
|
├── plans/
|
|
│ ├── cts-presenter-app.md # Phase 1 plan (COMPLETE)
|
|
│ └── cts-herd-playwright.md # Phase 2 plan (ACTIVE — 7/24 tasks)
|
|
├── notepads/
|
|
│ ├── cts-presenter-app/ # Phase 1 learnings
|
|
│ └── cts-herd-playwright/ # Phase 2 learnings (ACTIVE)
|
|
│ ├── learnings.md # Patterns, conventions
|
|
│ ├── decisions.md # Architectural choices
|
|
│ ├── issues.md # Problems, gotchas
|
|
│ └── problems.md # Unresolved issues
|
|
└── evidence/
|
|
├── task-1-herd-login-page.txt # T1 verification
|
|
├── task-3-factory-fields.txt # T3 verification
|
|
├── task-3-pest-pass.txt # T3 verification
|
|
├── task-4-build-tests.txt # T4 verification
|
|
├── task-4-testid-login.txt # T4 verification
|
|
├── task-5-config-check.txt # T5 verification
|
|
├── task-5-playwright-setup.txt # T5 verification
|
|
├── task-6-auth-tests.txt # T6 verification
|
|
└── task-7-navigation-tests.txt # T7 verification
|
|
```
|
|
|
|
---
|
|
|
|
## WORKTREE STRUCTURE
|
|
|
|
```
|
|
/Users/thorsten/AI/cts-work/ (branch: cts-presenter-app)
|
|
├── playwright.config.ts # Playwright configuration
|
|
├── tests/
|
|
│ ├── e2e/
|
|
│ │ ├── .auth/
|
|
│ │ │ └── user.json # storageState (gitignored)
|
|
│ │ ├── auth.setup.ts # Auth setup for tests
|
|
│ │ ├── auth.spec.ts # Auth E2E tests (5 tests)
|
|
│ │ └── navigation.spec.ts # Navigation E2E tests (9 tests)
|
|
│ └── Feature/ # Pest tests (174 tests)
|
|
├── resources/js/
|
|
│ ├── Pages/ # 6 Vue pages (data-testid added)
|
|
│ ├── Components/
|
|
│ │ ├── Blocks/ # 4 block components (data-testid added)
|
|
│ │ └── [others] # 8 other components (data-testid added)
|
|
│ └── Layouts/ # 3 layouts (data-testid added)
|
|
├── routes/web.php # Routes (includes POST /dev-login)
|
|
└── [other Laravel files]
|
|
```
|
|
|
|
---
|
|
|
|
## CURRENT STATUS
|
|
|
|
### Completed (7/24 tasks)
|
|
- ✅ Wave 1: Herd env, dummy login, UserFactory (3 tasks)
|
|
- ✅ Wave 2: data-testid attributes, Playwright infrastructure (2 tasks)
|
|
- ✅ Wave 3: Auth tests, Navigation tests (2 tasks)
|
|
|
|
### In Progress
|
|
- Wave 3: 6 remaining E2E test spec files (T8-T13)
|
|
|
|
### Pending
|
|
- Wave 4: 7 E2E test spec files (T14-T20)
|
|
- Final Verification: 4 review tasks (F1-F4)
|
|
|
|
### Test Status
|
|
- **E2E**: 13 tests passing (2 spec files)
|
|
- **Pest**: 174 tests passing (26 feature files)
|
|
- **Build**: Succeeds (790 modules, 1.51s)
|
|
|
|
---
|
|
|
|
## KEY DOCUMENTS
|
|
|
|
### 1. CONTINUATION_GUIDE.md (START HERE)
|
|
**Purpose**: Complete guide for continuing the work
|
|
**Contents**:
|
|
- Quick start commands
|
|
- Completed work summary
|
|
- Remaining task breakdown with exact requirements
|
|
- Execution patterns for each task type
|
|
- 6-section prompt templates
|
|
- Troubleshooting guide
|
|
- Verification checklists
|
|
|
|
**When to use**: Every time you continue this work
|
|
|
|
### 2. SESSION_SUMMARY.md
|
|
**Purpose**: Summary of current session's work
|
|
**Contents**:
|
|
- Executive summary
|
|
- Completed work details
|
|
- Current state
|
|
- Remaining work
|
|
- Key patterns established
|
|
- Metrics and handoff checklist
|
|
|
|
**When to use**: To understand what was done in the last session
|
|
|
|
### 3. plans/cts-herd-playwright.md
|
|
**Purpose**: Complete task plan (1,624 lines)
|
|
**Contents**:
|
|
- All 24 implementation tasks with detailed requirements
|
|
- 4 final verification tasks
|
|
- Acceptance criteria for each task
|
|
- QA scenarios
|
|
- References and patterns
|
|
|
|
**When to use**: To understand exact requirements for each task
|
|
|
|
### 4. notepads/cts-herd-playwright/learnings.md
|
|
**Purpose**: Accumulated knowledge from all sessions
|
|
**Contents**:
|
|
- Patterns that work
|
|
- Conventions established
|
|
- Gotchas discovered
|
|
- Best practices
|
|
|
|
**When to use**: Before starting any new task (to avoid known pitfalls)
|
|
|
|
---
|
|
|
|
## WORKFLOW
|
|
|
|
### For Each Task
|
|
|
|
1. **Read**:
|
|
- Plan file for task requirements
|
|
- Notepad for inherited wisdom
|
|
- Continuation guide for execution pattern
|
|
|
|
2. **Delegate**:
|
|
```typescript
|
|
task(
|
|
category="quick",
|
|
load_skills=["playwright"],
|
|
run_in_background=false,
|
|
description="Create {filename}.spec.ts",
|
|
prompt=`[6-section prompt from continuation guide]`
|
|
)
|
|
```
|
|
|
|
3. **Verify**:
|
|
```bash
|
|
npx playwright test {filename}.spec.ts # All tests pass
|
|
```
|
|
|
|
4. **Mark Complete**:
|
|
```typescript
|
|
Edit("plans/cts-herd-playwright.md", [
|
|
{op: "replace", pos: "{line}#{hash}", lines: "- [x] {task}"}
|
|
])
|
|
```
|
|
|
|
5. **Commit**:
|
|
```bash
|
|
git add tests/e2e/{filename}.spec.ts
|
|
git commit -m "test(e2e): add {feature} E2E tests"
|
|
```
|
|
|
|
6. **Update Notepad** (if learnings discovered):
|
|
```bash
|
|
echo "## [DATE] Task {N}: {Name}\n{learnings}" >> notepads/cts-herd-playwright/learnings.md
|
|
```
|
|
|
|
---
|
|
|
|
## CRITICAL PATTERNS
|
|
|
|
### Test Structure
|
|
```typescript
|
|
import { test, expect } from '@playwright/test';
|
|
|
|
test('description', async ({ page }) => {
|
|
await page.goto('/url');
|
|
await page.waitForLoadState('networkidle'); // CRITICAL
|
|
await expect(page).toHaveURL(/pattern/);
|
|
await expect(page.getByTestId('testid')).toBeVisible();
|
|
});
|
|
```
|
|
|
|
### CSRF Protection
|
|
```typescript
|
|
const cookies = await page.context().cookies();
|
|
const xsrfToken = decodeURIComponent(
|
|
cookies.find(c => c.name === 'XSRF-TOKEN')?.value || ''
|
|
);
|
|
await page.request.post('/endpoint', {
|
|
headers: { 'X-XSRF-TOKEN': xsrfToken }
|
|
});
|
|
```
|
|
|
|
### data-testid Naming
|
|
- `{component-kebab}-{element-description}`
|
|
- Examples: `login-oauth-button`, `service-list-edit-button`
|
|
|
|
### German UI Text
|
|
- Always use exact German text from Vue components
|
|
- Examples: "Gottesdienste", "Bearbeiten", "Finalisieren"
|
|
|
|
---
|
|
|
|
## TROUBLESHOOTING
|
|
|
|
### Session Timeouts
|
|
**Symptom**: task() times out after 10 minutes
|
|
**Solution**: Check if file was created, verify tests, proceed if passing
|
|
|
|
### Test Failures
|
|
**Symptom**: Element not found
|
|
**Solution**: Check data-testid spelling in Vue component
|
|
|
|
**Symptom**: Timeout waiting for element
|
|
**Solution**: Add `page.waitForLoadState('networkidle')`
|
|
|
|
**Symptom**: Redirect to login
|
|
**Solution**: Re-run auth setup: `npx playwright test --project=setup`
|
|
|
|
### SQLite BUSY
|
|
**Symptom**: Database locked errors
|
|
**Solution**: Verify `workers: 1` in playwright.config.ts
|
|
|
|
---
|
|
|
|
## METRICS
|
|
|
|
### Progress
|
|
- **Tasks**: 7/24 complete (29.2%)
|
|
- **E2E Tests**: 13/~45 complete (~29%)
|
|
- **Spec Files**: 2/15 complete (13.3%)
|
|
|
|
### Quality
|
|
- **Test Pass Rate**: 100% (13/13 E2E + 174/174 Pest)
|
|
- **Build Success**: 100%
|
|
- **Commits**: 8 atomic commits (6 worktree + 2 main repo)
|
|
|
|
### Time
|
|
- **Session Duration**: ~3 hours
|
|
- **Avg Time per Task**: ~25 minutes
|
|
- **Estimated Remaining**: ~7-8 hours (17 tasks)
|
|
|
|
---
|
|
|
|
## NEXT STEPS
|
|
|
|
1. **Read CONTINUATION_GUIDE.md** — Complete context for next session
|
|
2. **Launch Wave 3 tasks** — T8-T13 (6 tasks in parallel)
|
|
3. **Verify all tests pass** — Should have ~35-40 E2E tests after Wave 3
|
|
4. **Continue to Wave 4** — T14-T20 (7 tasks)
|
|
5. **Final Verification** — F1-F4 (4 review tasks)
|
|
|
|
---
|
|
|
|
## CONTACT
|
|
|
|
**Plan**: `.sisyphus/plans/cts-herd-playwright.md` (READ-ONLY for subagents)
|
|
**Guide**: `.sisyphus/CONTINUATION_GUIDE.md` (START HERE)
|
|
**Notepad**: `.sisyphus/notepads/cts-herd-playwright/` (APPEND-ONLY)
|
|
**Worktree**: `/Users/thorsten/AI/cts-work` (branch: `cts-presenter-app`)
|
|
|
|
---
|
|
|
|
**Last Updated**: 2026-03-01 23:20 UTC
|
|
**Status**: READY FOR CONTINUATION
|
|
**Quality**: ✅ All tests passing, full documentation
|
|
**Recommendation**: Continue with Wave 3 tasks T8-T13
|