import { test, expect } from '@playwright/test'

const BASE = 'http://localhost:3006/api'

test.describe('Backend API (Playwright)', () => {
  test('GET /api/user/info returns 401 without token', async ({ request }) => {
    const res = await request.get(`${BASE}/user/info`)
    expect(res.status()).toBe(401)
  })

  test('POST /api/user/send-code returns 200', async ({ request }) => {
    const res = await request.post(`${BASE}/user/send-code`, {
      data: { phone: '13800138000' },
    })
    expect(res.status()).toBe(201)
    const body = await res.json()
    expect(body.message).toBe('验证码已发送')
  })

  test('POST /api/payment/create returns 401 without auth', async ({ request }) => {
    const res = await request.post(`${BASE}/payment/create`, {
      data: { plan: 'growth' },
    })
    expect(res.status()).toBe(401)
  })

  test('POST /api/progress/checkin returns 401 without auth', async ({ request }) => {
    const res = await request.post(`${BASE}/progress/checkin`)
    expect(res.status()).toBe(401)
  })

  test('POST /api/contribution returns 401 without auth', async ({ request }) => {
    const res = await request.post(`${BASE}/contribution`, {
      data: { company: 'Test', position: '前端工程师' },
    })
    expect(res.status()).toBe(401)
  })

  test('GET /api/progress requires auth', async ({ request }) => {
    const res = await request.get(`${BASE}/progress`)
    expect(res.status()).toBe(401)
  })

  test('GET /api/admin/check requires auth', async ({ request }) => {
    const res = await request.get(`${BASE}/admin/check`)
    expect(res.status()).toBe(401)
  })
})
