Files
the_order/docs/reports/TESTING_CHECKLIST.md
defiQUG 2633de4d33 feat(eresidency): Complete eResidency service implementation
- Implement credential revocation endpoint with proper database integration
- Fix database row mapping (snake_case to camelCase) for eResidency applications
- Add missing imports (getRiskAssessmentEngine, VeriffKYCProvider, ComplyAdvantageSanctionsProvider)
- Fix environment variable type checking for Veriff and ComplyAdvantage providers
- Add required 'message' field to notification service calls
- Fix risk assessment type mismatches
- Update audit logging to use 'verified' action type (supported by schema)
- Resolve all TypeScript errors and unused variable warnings
- Add TypeScript ignore comments for placeholder implementations
- Temporarily disable security/detect-non-literal-regexp rule due to ESLint 9 compatibility
- Service now builds successfully with no linter errors

All core functionality implemented:
- Application submission and management
- KYC integration (Veriff placeholder)
- Sanctions screening (ComplyAdvantage placeholder)
- Risk assessment engine
- Credential issuance and revocation
- Reviewer console
- Status endpoints
- Auto-issuance service
2025-11-10 19:43:02 -08:00

9.4 KiB

Testing Checklist - Deprecation Fixes & ESLint 9 Migration

Date: 2024-12-28
Purpose: Comprehensive testing checklist for all deprecation fixes and ESLint 9 migration


Pre-Testing Verification

1. Dependency Installation

  • Run pnpm install - should complete without errors
  • Check for remaining warnings: pnpm install 2>&1 | grep -i "WARN"
  • Verify no @types/pino warnings
  • Verify no eslint@8 warnings
  • Only subdependency warnings should remain (9 packages, informational only)

2. Package Versions Verification

  • ESLint: pnpm list eslint shows 9.17.0+ in all packages
  • TypeScript ESLint: pnpm list typescript-eslint shows 8.18.0+
  • Pino: pnpm list pino shows 8.17.2 (no @types/pino)

🧪 Testing Phases

Phase 1: Linting Tests

1.1 Root Level Linting

  • Run pnpm lint from root
  • Verify all packages lint successfully
  • Check for ESLint errors or warnings
  • Verify flat config is being used

1.2 Service Linting

  • pnpm --filter @the-order/identity lint
  • pnpm --filter @the-order/finance lint
  • pnpm --filter @the-order/dataroom lint
  • pnpm --filter @the-order/intake lint

1.3 Package Linting

  • pnpm --filter @the-order/shared lint
  • pnpm --filter @the-order/auth lint
  • pnpm --filter @the-order/crypto lint
  • pnpm --filter @the-order/storage lint
  • pnpm --filter @the-order/database lint
  • pnpm --filter @the-order/workflows lint
  • pnpm --filter @the-order/schemas lint
  • pnpm --filter @the-order/test-utils lint
  • pnpm --filter @the-order/monitoring lint
  • pnpm --filter @the-order/payment-gateway lint
  • pnpm --filter @the-order/ocr lint

1.4 App Linting

  • pnpm --filter @the-order/portal-public lint
  • pnpm --filter @the-order/portal-internal lint
  • pnpm --filter @the-order/mcp-legal lint
  • pnpm --filter @the-order/mcp-members lint

1.5 Next.js Specific Linting

  • pnpm --filter @the-order/portal-public lint (Next.js)
  • pnpm --filter @the-order/portal-internal lint (Next.js)
  • Verify next lint works with ESLint 9

Phase 2: TypeScript Compilation Tests

2.1 Root Level Type Check

  • Run pnpm type-check from root
  • Verify all packages type-check successfully
  • Check for TypeScript errors

2.2 Service Type Checking

  • pnpm --filter @the-order/identity type-check
  • pnpm --filter @the-order/finance type-check
  • pnpm --filter @the-order/dataroom type-check
  • pnpm --filter @the-order/intake type-check

2.3 Package Type Checking

  • pnpm --filter @the-order/shared type-check
  • pnpm --filter @the-order/auth type-check
  • pnpm --filter @the-order/crypto type-check
  • pnpm --filter @the-order/storage type-check
  • pnpm --filter @the-order/database type-check
  • pnpm --filter @the-order/workflows type-check
  • pnpm --filter @the-order/schemas type-check
  • pnpm --filter @the-order/test-utils type-check
  • pnpm --filter @the-order/monitoring type-check
  • pnpm --filter @the-order/payment-gateway type-check
  • pnpm --filter @the-order/ocr type-check

Phase 3: Build Tests

3.1 Root Level Build

  • Run pnpm build from root
  • Verify all packages build successfully
  • Check for build errors

3.2 Service Builds

  • pnpm --filter @the-order/identity build
  • pnpm --filter @the-order/finance build
  • pnpm --filter @the-order/dataroom build
  • pnpm --filter @the-order/intake build

3.3 Package Builds

  • pnpm --filter @the-order/shared build
  • pnpm --filter @the-order/auth build
  • pnpm --filter @the-order/crypto build
  • pnpm --filter @the-order/storage build
  • pnpm --filter @the-order/database build
  • pnpm --filter @the-order/workflows build
  • pnpm --filter @the-order/schemas build
  • pnpm --filter @the-order/test-utils build
  • pnpm --filter @the-order/monitoring build
  • pnpm --filter @the-order/payment-gateway build
  • pnpm --filter @the-order/ocr build

3.4 App Builds

  • pnpm --filter @the-order/portal-public build
  • pnpm --filter @the-order/portal-internal build
  • pnpm --filter @the-order/mcp-legal build
  • pnpm --filter @the-order/mcp-members build

Phase 4: Test Execution

4.1 Unit Tests

  • Run pnpm test from root
  • Verify all unit tests pass
  • Check test coverage

4.2 Service Tests

  • pnpm --filter @the-order/identity test
  • pnpm --filter @the-order/finance test
  • pnpm --filter @the-order/dataroom test
  • pnpm --filter @the-order/intake test

4.3 Package Tests

  • pnpm --filter @the-order/shared test
  • pnpm --filter @the-order/auth test
  • pnpm --filter @the-order/crypto test
  • pnpm --filter @the-order/storage test
  • pnpm --filter @the-order/database test
  • pnpm --filter @the-order/workflows test
  • pnpm --filter @the-order/schemas test
  • pnpm --filter @the-order/test-utils test

Phase 5: Git Hooks & Pre-commit

5.1 Pre-commit Hook Testing

  • Make a test commit with linting errors - should be caught
  • Make a test commit with formatting issues - should be fixed
  • Verify lint-staged works with ESLint 9
  • Verify Prettier integration works

5.2 Lint-staged Configuration

  • Test TypeScript file linting
  • Test JSON file formatting
  • Test Markdown file formatting
  • Test YAML file formatting

Phase 6: CI/CD Pipeline Tests

6.1 GitHub Actions

  • Verify .github/workflows/ci.yml runs successfully
  • Check lint job passes
  • Check type-check job passes
  • Check test job passes
  • Check build job passes

6.2 Local CI Simulation

  • Run all CI commands locally:
    pnpm install
    pnpm lint
    pnpm type-check
    pnpm test
    pnpm build
    

Phase 7: ESLint Configuration Tests

7.1 Flat Config Verification

  • Verify eslint.config.js is being used
  • Test that old .eslintrc.js is ignored (if still present)
  • Verify all rules are applied correctly
  • Test rule overrides work

7.2 Plugin Compatibility

  • Verify @typescript-eslint plugins work
  • Verify eslint-plugin-security works
  • Verify eslint-plugin-sonarjs works
  • Verify eslint-config-prettier works

7.3 Type Checking Rules

  • Verify type-checking rules work (no-floating-promises, await-thenable)
  • Test with actual TypeScript code
  • Verify project references work

Phase 8: Integration Tests

8.1 Service Integration

  • Test Identity service endpoints
  • Test Finance service endpoints
  • Test Dataroom service endpoints
  • Test Intake service endpoints

8.2 Database Integration

  • Test database connections
  • Test database operations
  • Test migrations

8.3 External Service Integration

  • Test Storage (S3) operations
  • Test KMS operations
  • Test Payment Gateway (if configured)
  • Test OCR service (if configured)

Phase 9: Performance Tests

9.1 Linting Performance

  • Measure lint time: time pnpm lint
  • Compare with previous ESLint 8 performance
  • Verify no significant slowdown

9.2 Build Performance

  • Measure build time: time pnpm build
  • Verify no significant slowdown

Phase 10: Documentation & Cleanup

10.1 Documentation

  • Update README with ESLint 9 information
  • Document flat config format
  • Update contributing guide if needed

10.2 Cleanup

  • Remove old .eslintrc.js (after verification)
  • Remove any ESLint 8 references
  • Clean up unused dependencies

🐛 Known Issues & Workarounds

Issue 1: Next.js ESLint Compatibility

Status: Testing required
Action: Verify next lint works with ESLint 9

Issue 2: TypeScript ESLint Project References

Status: Testing required
Action: Verify project: './tsconfig.json' works correctly

Issue 3: Lint-staged with Flat Config

Status: Testing required
Action: Verify lint-staged can use ESLint 9 flat config


📊 Test Results Template

## Test Results - [Date]

### Linting
- Root: ✅ / ❌
- Services: ✅ / ❌
- Packages: ✅ / ❌
- Apps: ✅ / ❌

### Type Checking
- Root: ✅ / ❌
- All packages: ✅ / ❌

### Builds
- Root: ✅ / ❌
- All packages: ✅ / ❌

### Tests
- Unit tests: ✅ / ❌
- Integration tests: ✅ / ❌

### Git Hooks
- Pre-commit: ✅ / ❌
- Lint-staged: ✅ / ❌

### CI/CD
- GitHub Actions: ✅ / ❌

### Issues Found
- [List any issues]

### Warnings Remaining
- [List remaining warnings]

Success Criteria

All tests pass when:

  • All linting passes
  • All type checks pass
  • All builds succeed
  • All tests pass
  • Git hooks work
  • CI/CD pipelines pass
  • No critical warnings
  • Performance is acceptable

🚀 Quick Test Commands

# Full test suite
pnpm install && pnpm lint && pnpm type-check && pnpm test && pnpm build

# Individual package test
pnpm --filter @the-order/identity lint type-check test build

# Verify warnings
pnpm install 2>&1 | grep -i "WARN" | grep -v "subdependencies"

📝 Notes

  • ESLint 9 uses flat config format (ES modules)
  • Old .eslintrc.js can be kept for reference during migration
  • Next.js apps may need special ESLint configuration
  • Some packages may need package-specific ESLint configs