41 lines
1.5 KiB
TypeScript
41 lines
1.5 KiB
TypeScript
import { test, expect } from '@playwright/test'
|
|
import { uiLogin } from '../utils/auth'
|
|
import { createIssueViaApi, deleteIssueViaApi } from '../utils/api-helpers'
|
|
|
|
test.describe('Agent SSE 流式渲染', () => {
|
|
let apiToken = ''
|
|
let issueId = 0
|
|
|
|
test.beforeEach(async ({ page, request }) => {
|
|
const created = await createIssueViaApi(request)
|
|
issueId = created.issue.id
|
|
apiToken = created.token
|
|
await uiLogin(page)
|
|
})
|
|
|
|
test.afterEach(async ({ request }) => {
|
|
if (issueId) {
|
|
await deleteIssueViaApi(request, issueId, apiToken).catch(() => {})
|
|
}
|
|
})
|
|
|
|
test('执行指令后 SSE 事件实时渲染 thought / prompt_info / model_info', async ({ page }) => {
|
|
test.setTimeout(120000)
|
|
await page.goto(`/issues/${issueId}`)
|
|
await expect(page.getByText('IMS Agent 驾驶舱')).toBeVisible()
|
|
|
|
await page.getByPlaceholder(/给 Agent 下达指令/).fill('查找知识库相似案例并生成对应方案')
|
|
await page.getByRole('button', { name: /执行指令/i }).click()
|
|
|
|
// thought:初始连接消息经 SSE 渲染为绿色状态框
|
|
await expect(page.getByText(/已连接执行流/)).toBeVisible({ timeout: 20000 })
|
|
|
|
// model_info:引擎来源 Tag
|
|
await expect(page.getByText(/引擎:/)).toBeVisible({ timeout: 20000 })
|
|
|
|
// prompt_info:展开模板信息,模板标识非"未提供"
|
|
await page.getByText('Prompt 模板信息').click()
|
|
await expect(page.getByText(/系统角色:\s*\S+/)).toBeVisible()
|
|
await expect(page.getByText(/规划模板:\s*\S+/)).toBeVisible()
|
|
})
|
|
}) |