Suite went 64 failed → 291 passed / 0 failed:
- Makefile.wasm: compile with -MMD -MP and include .d files — stale objects
relinked against a newer wx lib crashed apps at startup with "function
signature mismatch" after any header/vtable change
- playwright(.coroutine).config.ts: pin the server port for the whole run
(resolvePort from playwright-kicad.config.ts); the 60s freshness window made
workers restarted after a failure rotate to a dead port (ERR_CONNECTION_REFUSED
cascade across ~50 tests)
- drop legacy-GL testing: KiCad renders via WebGL GAL (gal-webgl.spec.ts);
remove minimal_test's OpenGL tab/GLTestCanvas, opengl.spec.ts, GL z-order
describes, -sLEGACY_GL_EMULATION + gl_immediate_shim.js from the test build,
and the orphaned GL baselines
- coroutine-pthread repro apps join the `all` target (make clean used to delete
them while all never rebuilt them); clean no longer eats checked-in JS like
worker_dom_stub.js
- bump wxwidgets: guard module-eval document access so wx+pthread apps
(threadpool tests) survive Web Worker eval
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- Replace test.skip() with proper expect() assertions when app fails to load
- Remove button-finder utility (no longer needed with element registry)
- Remove kicad tests (tested separately)
- Add findByName/clickByName helpers for bitmap buttons
- Fix element lookups: use clickByName for bitmap buttons, clickTreeItem
for treebook pages, selectComboItem for wxChoice items
- Add SetName() to shape buttons in bitmapbuttons_test.cpp
- Remove verbose logging from print and threadpool tests
- Update README to reflect current test infrastructure
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add source hashing to stamp system (functions.sh) for detecting
when dependencies need rebuild based on source file changes
- Update build-pcbnew.sh to use source stamps for wxWidgets
- Add global-setup.ts to clean logs before test runs
- Add maximize_test standalone test to verify wxFrame::Maximize()
works correctly in WASM (it does - window is 1280x720)
- Update Makefile.wasm with maximize test build rules
The maximize_test proves wxWidgets display detection works fine.
KiCad's 20x20 window bug is KiCad-specific, not a wxWidgets issue.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add pcbnew-load.spec.ts: Tests for WASM runtime initialization
- Add pcbnew.html: Test harness for loading KiCad in browser
- Add setup-kicad-wasm.sh: Script to copy WASM from Docker build
- Add serve.json: COOP/COEP headers for SharedArrayBuffer support
- Update package.json: Add npm run test:kicad and setup:kicad scripts
- Update .gitignore: Exclude generated WASM/JS files from kicad/
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
New test apps and E2E tests:
- fontenum: Font enumeration via Local Font Access API (180 fonts)
- textdecor: Text underline/strikethrough decorations
- bitmask: wxMask bitmap transparency with color keys
- regions: Non-rectangular region clipping (union, subtract, complex shapes)
Updates:
- playwright.config.ts: Add local-fonts permission
- WHATWORKS.md: Document implemented features, update test counts
- Makefile.wasm: Add build targets for new test apps
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
wxClipboard:
- Update wxwidgets submodule with full wxClipboard implementation
- Add clipboard async functions to ASYNCIFY_IMPORTS in Makefile.wasm
- Update clipboard tests with correct button positions
- Add clipboard permissions to playwright config
- Update WHATWORKS.md to mark wxClipboard as working
Button Finder Utility:
- Add parametric button-finder.spec.ts for scanning canvas apps
- Utility scans for clickable buttons by detecting console log responses
- Excluded from regular test runs via testIgnore
- Supports APP_URL, START_Y, END_Y, STEP environment variables
- Document usage in tests/README.md
All 91 tests pass.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add tests/ directory with Playwright e2e tests
- Add minimal wxWidgets WASM test application
- Add build script for test app (scripts/build-wasm-test.sh)
- Update wxWidgets submodule with WASM build fixes
- Update .gitignore for test artifacts
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>