Add test coverage analysis with improvement proposals#43
Merged
Conversation
Document the current state of testing (1 Storybook story, no unit/integration/e2e tests, CI not running tests) and propose a phased plan covering pure function tests, hook tests, component stories, and E2E smoke tests. https://claude.ai/code/session_01R1f3Cb55HfJHSwXi6hck6U
Phase 1 — Foundation: - Add `test`, `test:watch`, and `test:coverage` scripts to package.json - Add Vitest unit test project (jsdom) alongside existing Storybook project - Add `pnpm run test` step to CI workflow - Install @testing-library/react, @testing-library/jest-dom, jsdom Phase 2 — Pure function tests (26 tests): - src/xray/highlight.test.ts: esc(), highlight(), color constants, JS_RULES Phase 3 — Hook tests (44 tests): - src/hooks/useTypewriter.test.ts: typing animation, cursor lifecycle, cleanup - src/hooks/useTheme.test.ts: localStorage, system preference, toggle - src/hooks/useActiveSection.test.ts: scroll-based section detection - src/hooks/usePrismFlip.test.tsx: flip count, quip cycling, confetti/coin triggers - src/hooks/useRevealOnScroll.test.tsx: IntersectionObserver integration - src/hooks/useMagneticTilt.test.ts: tilt math, attract range, disabled state - src/xray/useXRay.test.ts: keyboard toggle, modifier/input filtering Phase 4 — Component Storybook stories: - Hero, About, Experience, Projects, Footer, SectionHeading (Default + DarkMode) https://claude.ai/code/session_01R1f3Cb55HfJHSwXi6hck6U
- highlight.test.ts: verify escaping with empty rules, add string/keyword precedence test - useXRay.test.ts: add SELECT element, sourceHTML loading, ensureFont, and non-x key tests - useActiveSection.test.ts: add "last section wins" test, threshold boundary test - usePrismFlip.test.tsx: add auto-rotate timer and faceBg assertions - useMagneticTilt.test.ts: validate transform format with regex instead of loose string contains - useRevealOnScroll.test.tsx: replace `as any` casts with typed MockIO interface - useTypewriter.test.ts: assert cursor stays visible during typing 77 tests, all passing. https://claude.ai/code/session_01R1f3Cb55HfJHSwXi6hck6U
✅ Deploy Preview for symphonious-blancmange-7aafce ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
pnpm/action-setup@v4 requires an explicit pnpm version. Add `packageManager` to package.json so the action picks it up automatically. https://claude.ai/code/session_01R1f3Cb55HfJHSwXi6hck6U
`vitest run` without --project runs all projects including the storybook browser project, which requires Playwright's Chromium to be installed. CI doesn't have that. Scope test/test:watch/test:coverage to --project unit and add a separate test:storybook script. https://claude.ai/code/session_01R1f3Cb55HfJHSwXi6hck6U
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Document the current state of testing (1 Storybook story, no unit/integration/e2e tests,
CI not running tests) and propose a phased plan covering pure function tests, hook tests,
component stories, and E2E smoke tests.
https://claude.ai/code/session_01R1f3Cb55HfJHSwXi6hck6U
Summary by cubic
Adds a full testing setup and coverage plan: 77 Vitest unit tests, Storybook stories, and CI runs unit tests with coverage to prevent regressions. Also pins pnpm and scopes test scripts to the unit project so CI doesn’t require Playwright.
New Features
Dependencies
Written for commit 02998b4. Summary will update on new commits.