init: 2026Technology-Competition initial commit
This commit is contained in:
@@ -0,0 +1,57 @@
|
||||
import { test, expect } from '@playwright/test'
|
||||
import { uiLogin } from '../utils/auth'
|
||||
import { createIssueViaApi, deleteIssueViaApi, changeStatusViaApi } from '../utils/api-helpers'
|
||||
|
||||
test.describe('指摘 CRUD', () => {
|
||||
let apiToken = ''
|
||||
let issueId = 0
|
||||
let issueNo = ''
|
||||
|
||||
test.beforeEach(async ({ page, request }) => {
|
||||
const created = await createIssueViaApi(request)
|
||||
issueId = created.issue.id
|
||||
issueNo = created.issue.issueNo
|
||||
apiToken = created.token
|
||||
await uiLogin(page)
|
||||
})
|
||||
|
||||
test.afterEach(async ({ request }) => {
|
||||
if (issueId) {
|
||||
await deleteIssueViaApi(request, issueId, apiToken).catch(() => {})
|
||||
}
|
||||
})
|
||||
|
||||
test('列表页显示新建的指摘', async ({ page }) => {
|
||||
await page.goto('/issues')
|
||||
await expect(page.getByText('指摘列表')).toBeVisible()
|
||||
await expect(page.getByText(issueNo)).toBeVisible()
|
||||
})
|
||||
|
||||
test('详情页显示完整信息与状态流转历史', async ({ page }) => {
|
||||
await page.goto(`/issues/${issueId}`)
|
||||
await expect(page.getByText(issueNo)).toBeVisible()
|
||||
await expect(page.getByText('状态流转历史')).toBeVisible()
|
||||
await expect(page.getByText('创建指摘').first()).toBeVisible()
|
||||
})
|
||||
|
||||
test('合法状态流转 draft -> open', async ({ page }) => {
|
||||
await page.goto(`/issues/${issueId}`)
|
||||
const dialog = page.getByRole('dialog')
|
||||
await page.getByRole('button', { name: /更改状态/i }).click()
|
||||
await expect(dialog).toBeVisible()
|
||||
await dialog.locator('.ant-select-input').click()
|
||||
const opt = page.locator('.ant-select-item-option[title="待处理"]')
|
||||
await expect(opt).toBeVisible()
|
||||
await opt.click()
|
||||
await expect(dialog.locator('.ant-select-content')).toContainText('待处理')
|
||||
await dialog.getByRole('button', { name: /确认变更/i }).click()
|
||||
await expect(page.getByText('状态已更新')).toBeVisible()
|
||||
})
|
||||
|
||||
test('非法状态流转返回 400 错误提示', async ({ request }) => {
|
||||
const ok = await changeStatusViaApi(request, issueId, apiToken, 'open')
|
||||
expect(ok.status()).toBe(200)
|
||||
const illegal = await changeStatusViaApi(request, issueId, apiToken, 'closed')
|
||||
expect(illegal.status()).toBe(400)
|
||||
})
|
||||
})
|
||||
Reference in New Issue
Block a user