Quality
Overview

Quality

Quality is a first-class product surface in Ledger UI. We treat Metronic parity as a measurable target and validate every component against automated and manual checks.

Quality Stack

LayerToolWhat It Checks
Unit testsVitestComponent exports, utility functions, hook behavior
Type checkingTypeScript strictAPI contracts, prop types
LintingESLintCode quality, import patterns
FormattingPrettierConsistent code style
Bundle sizeCustom scriptPer-package size budgets
Accessibilityaxe-core + StorybookWCAG AA compliance per story
Visual regressionChromaticPixel-level snapshot diffs
CI/CDGitHub ActionsAll checks on every PR

Current Metrics

MetricValue
Total tests301
Test packages8
Storybook stories70
Bundle size (UI ESM)186KB / 250KB budget
Layout parity100% (10/10 Metronic demos)
Template coverage15 templates
Component count53+

What We Validate

  • Layout + navigation parity — All 10 Metronic demo layouts reproduced via 8 MetronicLayout variants
  • Visual parity — Spacing, typography, surfaces match Metronic reference
  • Component API — All components have typed props, forwardRef, and displayName
  • Accessibility — axe-core checks on all Storybook stories
  • A11y gate — dedicated CI Storybook audit is blocking
  • Mobile and RTL — Responsive breakpoints, CSS logical properties for RTL
  • Build integrity — Lint, typecheck, build, test pass in CI

Running Quality Checks

# Full CI suite locally
pnpm lint && pnpm format:check && pnpm typecheck && pnpm build && pnpm test
 
# Bundle size check
node scripts/check-bundle-size.mjs
 
# Docs link check
pnpm docs:links
 
# Story coverage check
pnpm storybook:coverage
 
# Storybook a11y
pnpm --filter @gtcx/storybook test:a11y
 
# Visual regression
pnpm --filter @gtcx/storybook chromatic

UAT Process

See the UAT Index for sprint checklists and evidence requirements.