32 lines
1.6 KiB
TypeScript
32 lines
1.6 KiB
TypeScript
import { test, expect } from '@playwright/test'
|
|
import { uiLogin } from '../utils/auth'
|
|
|
|
test.describe('新建页 Agent 智能填充', () => {
|
|
test('点击「让 Agent 智能填充」真实调用 AI 并回填字段', async ({ page }) => {
|
|
test.setTimeout(420000)
|
|
await uiLogin(page)
|
|
await page.goto('/issues/new')
|
|
|
|
await page.getByPlaceholder('请输入指摘标题').fill('登录页面在低分辨率下按钮错位、样式异常,影响操作')
|
|
|
|
const fillBtn = page.getByRole('button', { name: /让 Agent 智能填充/i })
|
|
await fillBtn.click()
|
|
await expect(fillBtn).toHaveClass(/ant-btn-loading/, { timeout: 15000 })
|
|
// 模型调用耗时波动大(数十秒到数分钟),axios 侧 180s 超时后走降级回填,故等待上限放宽到 240s
|
|
await expect(fillBtn).not.toHaveClass(/ant-btn-loading/, { timeout: 240000 })
|
|
|
|
// 工程阶段/区分/影响度三个 Select 至少被回填 3 个非"请选择"值(AI 成功或降级都会回填)
|
|
await expect.poll(async () => {
|
|
return page.locator('.ant-select').evaluateAll(els =>
|
|
els.filter(e => {
|
|
const t = e.textContent?.trim() ?? ''
|
|
return t !== '' && t !== '请选择'
|
|
}).length)
|
|
}, { timeout: 30000, intervals: [2000] }).toBeGreaterThanOrEqual(3)
|
|
|
|
// 优先级 Radio 也被回填(高/中/低 任一)
|
|
const checked = (await page.locator('.ant-radio-button-wrapper-checked').allTextContents()).map(s => s.trim()).filter(Boolean)
|
|
expect(checked.length).toBeGreaterThan(0)
|
|
console.log('filled selects:', JSON.stringify(checked))
|
|
})
|
|
}) |