learning_ai_invt_trdg/web/pre-deploy.md

4.1 KiB

Pre-Deploy Validation

Contract

Running npm run check guarantees:

Build succeeds - TypeScript compilation + Vite build passes with no errors
Lint passes - ESLint checks pass
Format passes - ESLint auto-fix applied

Does NOT guarantee:

  • Tests pass (tests are optional, run separately)
  • Runtime behavior
  • API connectivity
  • WebSocket connection

Pre-Deploy Command

npm run check

What it runs:

  1. npm run build - TypeScript compilation + Vite production build
  2. npm run lint - ESLint checks
  3. npm run format - ESLint auto-fix

Individual Check Commands

Build Check

npm run build

What it does: tsc -b && vite build
Pass criteria: TypeScript compiles AND Vite builds with 0 errors
Fail criteria: Any TypeScript or build error

Lint Check

npm run lint

What it does: eslint .
Pass criteria: No ESLint errors
Fail criteria: Any ESLint error (warnings are OK)

Format Check

npm run format

What it does: eslint . --fix
Pass criteria: Auto-fixes applied, no remaining errors
Fail criteria: Errors that cannot be auto-fixed


Optional: Test Check

Tests are optional but recommended before deploy.

npm run test

What it does: vitest run - Runs all component tests
Pass criteria: All tests pass
Fail criteria: Any test fails

When to run tests:

  • Before deploying to production
  • After making UI changes
  • After updating dependencies
  • ⚠️ Optional for hotfixes (use judgment)

Pass/Fail Rules

SAFE TO DEPLOY (Minimum)

All of the following must be true:

  • npm run build exits with code 0
  • npm run lint exits with code 0
  • npm run format exits with code 0

All minimum checks PLUS:

  • npm run test exits with code 0

DO NOT DEPLOY

If any of the following are true:

  • npm run build fails (TypeScript or Vite errors)
  • npm run lint fails (ESLint errors)
  • npm run format fails (unfixable ESLint errors)
  • npm run test fails (if you chose to run tests)

Current Issues (Must Fix Before Deploy)

⚠️ Build is currently failing:

src/App.dom.test.tsx:3:26 - error TS6133: 'waitFor' is declared but its value is never read
src/tabs/OverviewTab.dom.test.tsx:6:10 - error TS6133: 'tableNameTransactions' is declared but its value is never read
... and 9 more errors

Action required: Fix TypeScript errors before deploying


Full Pre-Deploy Checklist

# Minimum (required)
npm run check

# Recommended (includes tests)
npm run check && npm run test

# Full validation (includes coverage)
npm run check && npm run coverage

Quick Reference

Command Purpose Time Critical
npm run build Compile + Build ~15s YES
npm run lint ESLint check ~5s YES
npm run format ESLint fix ~5s YES
npm run test Run tests ~10s RECOMMENDED
npm run check All checks ~25s YES

Troubleshooting

Build fails

  • Check TypeScript errors in output
  • Fix type errors in code
  • Ensure all imports are correct
  • Check Vite build errors

Lint fails

  • Check ESLint errors in output
  • Fix code style issues
  • Update ESLint config if needed

Format fails

  • Some errors cannot be auto-fixed
  • Manually fix remaining issues
  • Re-run npm run format

Tests fail

  • Check test output for failures
  • Fix failing tests
  • Update snapshots if needed (vitest -u)

Notes

  • Tests are optional: But strongly recommended for production deploys
  • Checks are mandatory: Build, lint, format must pass
  • No shortcuts: Do not skip checks or deploy with failures
  • Independent: This project's checks are independent of the backend

  • Backend pre-deploy: ../bytelyst-trading-bot-service/docs/pre-deploy.md
  • Deployment script: deploy.ps1
  • Test coverage: npm run coverage