import { defineConfig } from 'vite'
import react from '@vitejs/plugin-react'

// 학습 포인트: 개발 중엔 프론트(5173)가 /api 요청을 백엔드(8080)로 넘겨줍니다(프록시).
// 운영에선 nginx/Caddy가 같은 역할을 합니다.
export default defineConfig({
  plugins: [react()],
  server: {
    proxy: {
      '/api': {
        target: 'http://localhost:8080',
        changeOrigin: true,
      },
    },
  },
  // 학습 포인트: 테스트가 "로직 계층(src/lib)"의 몇 %를 실행하는지 측정한다.
  //   UI 컴포넌트가 아니라, 채점·검증 같은 순수 로직에 안전망이 있는지가 중요.
  //   npm run coverage → 터미널 표 + coverage/index.html.
  test: {
    coverage: {
      provider: 'v8',
      include: ['src/lib/**'],
      exclude: ['src/lib/**/*.test.js'],
      reporter: ['text', 'html'],
      // 채점 로직(runSql.js)엔 바닥을 건다 — 이 안전망을 지우면 CI 빨간불.
      //   glossary(데이터)·postcode/runJs(브라우저 연동)는 순수 유닛테스트 대상이 아니라 게이트 제외.
      //   학생이 다른 로직에 테스트를 붙이면 여기에 파일을 추가해 바닥을 넓히는 게 목표.
      thresholds: {
        'src/lib/runSql.js': { lines: 40 },
      },
    },
  },
})
