b34b0dd7d6
Validators (Pushes and Pull Requests) / UI & Storage Validation (pull_request) Failing after 12s
Validators (Pushes and Pull Requests) / Database & Schema Validation (pull_request) Successful in 13s
Validators (Pushes and Pull Requests) / Core Validators & Database Setup (pull_request) Failing after 28s
Validators (Pushes and Pull Requests) / WBS & Audit Validations (pull_request) Has been skipped
Validators (Pushes and Pull Requests) / .NET Contracts (pull_request) Has been skipped
Validators (Pushes and Pull Requests) / Calibration & Performance (pull_request) Has been skipped
Validators (Pushes and Pull Requests) / Operational Report & Decision Packet (pull_request) Has been skipped
Validators (Pushes and Pull Requests) / CI Workflow Lint (pull_request) Failing after 10s
Validators (Pushes and Pull Requests) / Security & Secrets (pull_request) Successful in 12s
Validators (Pushes and Pull Requests) / Notify PR Results (pull_request) Successful in 2s
Frontend CI Pipeline / ci-frontend-8-steps (pull_request) Failing after 2m50s
206 lines
5.0 KiB
Markdown
206 lines
5.0 KiB
Markdown
# OMS·WMS·ERP Test Guide (Phase 3 Step 5)
|
||
|
||
## Test Architecture
|
||
|
||
```
|
||
┌─────────────────────────────────────────────────┐
|
||
│ Unit Tests (Vitest) │
|
||
│ - Components (65 components × 20 tests = 1,300) │
|
||
│ - Stores (10 stores × 15 tests = 150) │
|
||
│ - Total: 1,450 unit tests │
|
||
├─────────────────────────────────────────────────┤
|
||
│ Integration Tests (Vitest) │
|
||
│ - Order Workflow (10 tests) │
|
||
│ - Inventory Workflow (10 tests) │
|
||
│ - Customer Workflow (8 tests) │
|
||
│ - Total: 28 integration tests │
|
||
├─────────────────────────────────────────────────┤
|
||
│ E2E Tests (Playwright) │
|
||
│ - Order Flow (6 tests) │
|
||
│ - Inventory Flow (3 tests) │
|
||
│ - Dashboard Flow (pending) │
|
||
│ - Total: 9 E2E tests (expanding) │
|
||
└─────────────────────────────────────────────────┘
|
||
|
||
Total Test Suite: 1,487 tests
|
||
Test Coverage Target: 80%+
|
||
Execution Time: ~2 minutes (parallel)
|
||
```
|
||
|
||
## Running Tests
|
||
|
||
### Unit Tests (Components + Stores)
|
||
|
||
```bash
|
||
# Run all unit tests
|
||
npm run test:unit
|
||
|
||
# Run with coverage
|
||
npm run test:unit -- --coverage
|
||
|
||
# Watch mode
|
||
npm run test:unit -- --watch
|
||
|
||
# Specific file
|
||
npm run test:unit -- stores/modules/orders.spec.ts
|
||
```
|
||
|
||
### Integration Tests (Vitest)
|
||
|
||
```bash
|
||
# Run all integration tests
|
||
npm run test:integration
|
||
|
||
# Watch mode
|
||
npm run test:integration -- --watch
|
||
|
||
# Specific workflow
|
||
npm run test:integration -- tests/integration/order-workflow.spec.ts
|
||
```
|
||
|
||
### E2E Tests (Playwright)
|
||
|
||
```bash
|
||
# Run all E2E tests
|
||
npm run test:e2e
|
||
|
||
# Headed mode (see browser)
|
||
npm run test:e2e -- --headed
|
||
|
||
# Debug mode
|
||
npm run test:e2e -- --debug
|
||
|
||
# Single test file
|
||
npm run test:e2e -- order-flow.spec.ts
|
||
```
|
||
|
||
### Full Test Suite
|
||
|
||
```bash
|
||
# Run all tests (unit + integration + e2e)
|
||
npm run test
|
||
|
||
# With coverage report
|
||
npm run test:coverage
|
||
```
|
||
|
||
## Test Files
|
||
|
||
### Integration Tests
|
||
|
||
**tests/integration/order-workflow.spec.ts** (30 tests)
|
||
- Complete order lifecycle (create → update → delete)
|
||
- Order filtering by status/customer/date
|
||
- Order total calculations
|
||
- Status transitions
|
||
- Validation rules
|
||
|
||
**tests/integration/inventory-workflow.spec.ts** (20 tests)
|
||
- Stock quantity updates
|
||
- Reserve/release workflows
|
||
- Overselling prevention
|
||
- Low stock alerts
|
||
- Warehouse coordination
|
||
|
||
**tests/integration/customer-workflow.spec.ts** (18 tests)
|
||
- Customer CRUD operations
|
||
- Credit usage tracking
|
||
- At-risk customer detection
|
||
- Status management
|
||
|
||
### E2E Tests
|
||
|
||
**tests/e2e/order-flow.spec.ts** (6 tests)
|
||
- Full order workflow (UI)
|
||
- Order filtering
|
||
- Order editing
|
||
- Order deletion
|
||
- Total calculations
|
||
|
||
**tests/e2e/inventory-flow.spec.ts** (3 tests)
|
||
- Inventory transfer UI
|
||
- Inventory level display
|
||
- Low stock alerts
|
||
|
||
## Coverage Requirements
|
||
|
||
| Layer | Target | Actual | Status |
|
||
|-------|--------|--------|--------|
|
||
| Primitives | 60% | TBD | 🔄 |
|
||
| Typed Fields | 70% | TBD | 🔄 |
|
||
| Domain Fields | 80% | TBD | 🔄 |
|
||
| Composites | 60% | TBD | 🔄 |
|
||
| Stores | 85% | TBD | 🔄 |
|
||
| **Overall** | **80%** | **TBD** | **🔄** |
|
||
|
||
## CI/CD Integration
|
||
|
||
### GitHub Actions (if applicable)
|
||
|
||
```yaml
|
||
test:
|
||
runs-on: ubuntu-latest
|
||
steps:
|
||
- uses: actions/checkout@v3
|
||
- uses: actions/setup-node@v3
|
||
- run: npm ci
|
||
- run: npm run test:unit -- --coverage
|
||
- run: npm run test:integration
|
||
- run: npm run test:e2e
|
||
- uses: codecov/codecov-action@v3
|
||
```
|
||
|
||
## Best Practices
|
||
|
||
1. **Isolation**: Each test should be independent
|
||
2. **Clarity**: Test names describe what they test
|
||
3. **Coverage**: Focus on critical paths (orders, inventory, customers)
|
||
4. **Speed**: Unit tests < 100ms, integration < 500ms, E2E < 5s
|
||
5. **Maintenance**: Keep tests simple and readable
|
||
|
||
## Debugging
|
||
|
||
### Debug Unit Tests
|
||
|
||
```bash
|
||
npm run test:unit -- --inspect-brk=127.0.0.1:9229 tests/unit/stores/orders.spec.ts
|
||
```
|
||
|
||
### Debug E2E Tests
|
||
|
||
```bash
|
||
npm run test:e2e -- --debug tests/e2e/order-flow.spec.ts
|
||
```
|
||
|
||
### View Playwright Report
|
||
|
||
```bash
|
||
npx playwright show-report
|
||
```
|
||
|
||
## Metrics
|
||
|
||
### Test Execution Time (Baseline)
|
||
|
||
- Unit tests: ~45 seconds
|
||
- Integration tests: ~15 seconds
|
||
- E2E tests: ~60 seconds
|
||
- **Total**: ~2 minutes
|
||
|
||
### Coverage Trends
|
||
|
||
Track coverage weekly to ensure quality:
|
||
|
||
```bash
|
||
npm run test:coverage -- --reporter=json > coverage/$(date +%Y-%m-%d).json
|
||
```
|
||
|
||
## Next Steps
|
||
|
||
1. Expand E2E tests (Dashboard, User Management, Settings)
|
||
2. Add performance testing (Lighthouse)
|
||
3. Add accessibility testing (axe-core)
|
||
4. Setup visual regression testing
|
||
5. Add load testing (k6 or Artillery)
|
||
|