chore(web): enforce test cleanup and the CSS reset rule in code, fix dependency placement

Open
#429 0 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
3/5
Estimated time
1-2 days
Newbie friendliness
78/100
Issue type
Refactor
Clarity
Clearly specified
Activity status
Active
Tech stack
css, typescript
Domain
frontend, testing

Research direction

Start with src/journal.css, src/test/setup.ts, and vite.config.ts; inspect the existing reset comments, PrefsContext cleanup, and vi.clearAllMocks() calls. Move the stated DOM cleanup into a global afterEach, enable clearMocks, and remove duplicate cleanup. Run the listed lint, type-check, coverage, build, and shuffled test commands; done when they pass with at least 80% coverage and no app behavior change.

Written by the indexing model from the issue text.

Description

tech-debt

Found while trimming TaskFlow.Web/CLAUDE.md for #400. Each rule in that file that Claude cannot read from the code is better enforced in the code, so the prose can go.

Scope

  1. Add a comment on the .journal-page button reset in src/journal.css (specificity 0-1-1) saying that a button needing its own border or background must be scoped as .journal-page .classname (0-2-0). Four later rules already carry this comment; the reset itself has none.

  2. Move the PrefsContext DOM cleanup into src/test/setup.ts as a global afterEach: document.documentElement.removeAttribute('data-theme'), document.documentElement.classList.remove('is-dark'), localStorage.clear(). Remove the same cleanup from tests that now duplicate it.

  3. Set clearMocks: true in the vitest config in vite.config.ts, and drop the vi.clearAllMocks() calls in beforeEach that it makes redundant.

  4. Move clsx, tailwind-merge and class-variance-authority from devDependencies to dependencies in TaskFlow.Web/package.json, and refresh package-lock.json. src/lib/utils.ts imports clsx and tailwind-merge in production code (the app works because Vite bundles them); check whether class-variance-authority is imported at all and remove it if it is unused.

Acceptance criteria

  1. npm run lint, npm run type-check, npm run test -- --run --coverage and npm run build pass, and coverage stays at or above 80%.
  2. The full test suite passes in a random order (--sequence.shuffle), to show the global cleanup removed the need for per-file cleanup.
  3. No behaviour change in the app.
  4. Every package imported from src/** (not tests) is listed under dependencies, not devDependencies.

Out of scope

The status casing bridge (src/lib/task-status.ts); see #428.

Dominant language
C#
Stars
1
Forks
0
Avg merge
2h 2m
Merged PRs (30d)
98

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from nevridge/TaskFlow

All issues in nevridge/TaskFlow

Similar issues

More C# issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.