1.9 KiB
Testing Strategy
Testing begins with the first implementation.
Unit
Test domain rules and pure services:
- status transitions
- listing requirements
- cost basis
- profit
- valuation strategies
- outlier handling
- condition rules
API / integration
Test:
- authentication
- authorization
- repositories
- API validation
- Product/provider mapping
- inventory lifecycle
- sales transactions
- public/private DTO boundaries
Component
Test important Vue components and composables. Every new or changed visual component must include a colocated Storybook story or an update to an existing story before its vertical slice is committed.
For visual slices, run the complete Storybook gate from the repository root:
npm run test --workspace=@pokemon-inventory/web
npm run build --workspace=@pokemon-inventory/web
npm run build-storybook --workspace=@pokemon-inventory/web
npm run test-storybook
Stories should use mock fixture data and cover the component states that users can encounter, including keyboard focus, selected, disabled, loading, empty, error, responsive, and light/dark theme behavior where applicable. Do not add production domain behavior just to make a story render.
E2E
Core workflows:
- Login
- Add Product
- Find/link provider mappings
- Add Inventory Item
- Upload images
- Calculate pricing
- Publish listing
- Search public site
- Record sale
- View dashboard
Accessibility
Run automated accessibility checks and maintain manual keyboard/assistive technology coverage for critical workflows.
CI
GitHub Actions should run:
- linting
- unit tests
- integration/API tests
- component tests
- E2E tests as appropriate
- accessibility checks
- build validation
The Storybook build and interaction/accessibility runner are part of the visual-slice commit gate. Backend-only slices may omit them when no visual component or UI contract changes.
Do not weaken or skip tests to obtain a passing build.