Files
QuantEngineByItz/oms-wms-erp/TEST-GUIDE.md
T
kjh2064 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
Add OMS WMS ERP platform
2026-07-27 00:45:39 +09:00

206 lines
5.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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)