A Adminator v4.4.0

Testing & workflow

Contributor commands, regression tests, bundle budgets, and release verification for Adminator 4.4.

Last updated October 13, 2026

Local checks

npm ci
npm run lint
npm run test:run
npm run test:coverage
npm run check
npx playwright install chromium
npm run test:browser

npm test runs Vitest in watch mode. Vitest 5 with jsdom discovers tests/**/*.test.js; tests/setup.js resets DOM/storage and stubs browser APIs. There is no configured minimum coverage percentage. Name tests <feature>.test.js, group behavior with describe/it, and add regression tests for changed interactions.

The release has 77 unit tests. New regressions cover the palette toggling exactly once with the shell button present and chart instances being updated rather than recreated during theme changes.

Browser checks

The Playwright smoke runner serves the existing dist/ on a temporary loopback port and checks every source page in light/dark themes at 1440px and 390px. The current template has 72 page/theme/viewport combinations. It verifies calendar views, chart rendering, vector-map paths, mobile drawers, theme actions, required lazy bundles, and failed local assets/runtime errors.

External font/map requests are blocked to make these checks deterministic; they do not validate third-party services or replace a production visual review. Failure screenshots go to ignored test-results/.

Do not rebuild or clean dist/ while browser checks run. A build removes the old output before writing new files, which can interrupt the smoke server.

Performance checks

Minified builds verify local asset references and enforce initial size budgets of 140 KiB raw / 35 KiB gzip. Current initial JS/CSS is 128.4 KiB / 27.2 KiB gzip. The complete production directory is about 0.94 MB, and the Chart.js chunk is 180,520 bytes / 61,503 gzip.

webpack stores its filesystem cache under node_modules/.cache/webpack/, with separate caches for development, minified production, and unminified production. A local measurement was 289 ms warm versus 2,267 ms cold compilation; these are build timings, not browser Core Web Vitals.

CI and dependency upkeep

PRs to master test Node 22/24 and build production assets. Lint/audit and Chromium checks run on Node 24. New PR commits cancel superseded checks. Weekly Dependabot updates cover npm and GitHub Actions; Vitest/coverage packages are grouped together.

The production dependency audit reports zero advisories. The full development audit has 13 findings stemming from the unpatched braces stack-exhaustion advisory, used by Stylelint and the dev server. Upgrades removed the prior critical/moderate findings; no advisory is suppressed.

Use two-space indentation, LF endings, and existing ESLint/Stylelint rules. See AGENTS.md and CLAUDE.md in the repository for contributor and architecture guidance.