- playwright.config.ts: change baseURL from dev site to localhost:3000
- combat-happy-path.spec.ts: fix climb button location (LeftPanel, not spire tab), fix descent via store, handle game-over from day overflow, reduce tick counts to avoid day 30 limit
- fabricator-happy-path.spec.ts: set currentAction to meditate before crafting (required by startFabricatorCrafting)
- playtest.spec.ts: rewrite from scratch — use localhost, window.__TEST__ bridge (not window.__debug), current tab names (no grimoire/element tabs), split into 3 files under 400-line limit
- playtest-basic-ui.spec.ts: sections 1-3 (basic UI, stats, spire)
- playtest-tabs.spec.ts: sections 4-11 (all tab navigation tests)
- playtest-debug.spec.ts: sections 12-14 (debug tab, bridge, stress test)
Enchanter test:
- Use data-testid selectors for debug buttons
- Add waitForBridge pattern
- Switch baseURL to localhost:3000
Fabricator test:
- Use data-testid selectors for all debug buttons (attunements, elements, disciplines, materials)
- Activate discipline via toggle button before adding XP
- Unlock recipes via discipline XP + store unlockRecipes
- Replace waitForTimeout with runTicks for crafting (instant tick-based waiting)
- Add ticksForHours helper for deterministic craft completion
- Verify each craft completed via store check instead of currentAction polling
- Remove direct store manipulation for attunement/element unlock (use debug UI buttons)
- Rewrite e2e/fabricator-happy-path.spec.ts from scratch:
craft 8 gear pieces (1 per slot) via Fabricator UI,
equip all via store bridge, verify equipment effects
- Add debugBridge.ts: exposes Zustand stores on window.__TEST__
so Playwright can call store actions via page.evaluate()
- Import debugBridge in page.tsx as side-effect
- Uses Debug tab UI for attunement/element unlocking
- Uses store bridge for discipline XP, mana capacity, materials,
recipe unlocking, and equipment slot assignment
- Test passes in ~3.5 minutes (155s craft time + setup)