Files
telegram-bot-workers/vitest.config.ts
kappa f5df0c0ffe feat: add optimistic locking and improve type safety
- Implement optimistic locking for deposit balance updates
  - Prevent race conditions in concurrent deposit requests
  - Add automatic retry with exponential backoff (max 3 attempts)
  - Add version column to user_deposits table

- Improve type safety across codebase
  - Add explicit types for Namecheap API responses
  - Add typed function arguments (ManageDepositArgs, etc.)
  - Remove `any` types from deposit-agent and tool files

- Add reconciliation job for balance integrity verification
  - Compare user_deposits.balance vs SUM(confirmed transactions)
  - Alert admin on discrepancy detection

- Set up test environment with Vitest + Miniflare
  - Add 50+ test cases for deposit system
  - Add helper functions for test data creation

- Update documentation
  - Add migration guide for version columns
  - Document optimistic locking patterns

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 23:23:09 +09:00

36 lines
787 B
TypeScript

import { defineConfig } from 'vitest/config';
import path from 'path';
export default defineConfig({
test: {
globals: true,
environment: 'miniflare',
environmentOptions: {
bindings: {
BOT_TOKEN: 'test-bot-token',
WEBHOOK_SECRET: 'test-webhook-secret',
OPENAI_API_KEY: 'test-openai-key',
DEPOSIT_ADMIN_ID: '999999999',
},
kvNamespaces: ['RATE_LIMIT_KV'],
d1Databases: ['DB'],
},
setupFiles: ['./tests/setup.ts'],
coverage: {
provider: 'v8',
reporter: ['text', 'json', 'html'],
exclude: [
'node_modules/',
'tests/',
'**/*.test.ts',
'**/__test__/',
],
},
},
resolve: {
alias: {
'@': path.resolve(__dirname, './src'),
},
},
});