- B1: Next.js 15 + Payload CMS 3.0 + Postgres 16, ESLint, Prettier, Husky, Vitest - B2: 9 collections, 6 globals, 12 Page Builder blocks, access control, slugify/revalidate hooks - B3: ezy.com.ua payments, Binotel HMAC webhook, leads API, Telegram bot, Resend email, rate limiting - B4: Tariffs collection with ezy API sync (cron + manual), dynamic pricing source-of-truth - B5: 13 test files covering unit libs and all API routes - B6: Dockerfile multi-stage, docker-compose.prod.yml, nginx.conf SSL, GitHub Actions CI/CD, health endpoint - B7: docs/admin-guide-ua.md (marketer guide), docs/deploy.md (VPS instructions), README quickstart Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
31 lines
805 B
TypeScript
31 lines
805 B
TypeScript
import { defineConfig } from 'vitest/config'
|
|
import { fileURLToPath } from 'url'
|
|
import path from 'path'
|
|
|
|
const __dirname = path.dirname(fileURLToPath(import.meta.url))
|
|
|
|
export default defineConfig({
|
|
test: {
|
|
pool: 'forks',
|
|
globals: true,
|
|
environment: 'node',
|
|
include: ['tests/**/*.test.ts'],
|
|
setupFiles: ['./vitest.setup.ts'],
|
|
coverage: {
|
|
provider: 'v8',
|
|
reporter: ['text', 'json', 'html'],
|
|
include: ['src/lib/**', 'src/access/**', 'src/app/api/**'],
|
|
exclude: ['node_modules/**', 'src/payload-types.ts', '.next/**'],
|
|
thresholds: {
|
|
lines: 70,
|
|
functions: 80,
|
|
},
|
|
},
|
|
},
|
|
resolve: {
|
|
alias: {
|
|
'@payload-config': path.resolve(__dirname, 'payload.config.ts'),
|
|
'@': path.resolve(__dirname, 'src'),
|
|
},
|
|
},
|
|
})
|