Simple static portfolio site for Don Welsh, built to showcase clean front-end fundamentals and practical quality engineering habits.
- Semantic HTML with accessible navigation, skip links, and stable page structure
- Lightweight CSS with responsive layout behavior and low layout shift
- System-aware light/dark theming with accessible preference persistence
- Test-friendly markup using
data-testidonly where it supports durable end-to-end automation - Playwright coverage focused on user-facing behavior, mobile navigation, and accessibility
The Playwright suite is intentionally small and maintainable.
- Use role-based locators first, with
data-testidas stable fallback hooks - Cover critical paths instead of asserting every line of copy
- Keep tests isolated and independent
- Run axe-based accessibility checks as part of the end-to-end suite
- Use traces, screenshots, and videos only when they help diagnose failures
npm start
npm test
npm run test:e2e
npm run test:e2e:headed
npm run test:e2e:ui
npm run test:e2e:debug
npm run test:e2e:report
npm run test:lighthouse
npm run test:ci- The Playwright config starts a local static server automatically.
- Reports are written to
playwright-report/. - Lighthouse assertions are configured in
lighthouserc.json. - GitHub Actions runs both Playwright and Lighthouse on pushes and pull requests.
MIT — Copyright (c) 2026 Don Welsh.