45 lines
2.3 KiB
TypeScript
45 lines
2.3 KiB
TypeScript
import { test, expect } from '@playwright/test'
|
|
import { requireKbxScenario, scenarioTitle } from './helpers/kbxScenario'
|
|
|
|
const queueRecovery=requireKbxScenario('scenario.common.operations.queue-recovery')
|
|
|
|
test.describe('COMMON-OPS-001 업무 예외 센터', () => {
|
|
test(scenarioTitle(queueRecovery.id), async ({ page }) => {
|
|
await page.goto('/operations/exceptions')
|
|
await expect(page.locator('[data-screen-id="COMMON-OPS-001"]')).toBeVisible()
|
|
await expect(page.locator('[data-kbx-surface="exception-summary"]')).toBeVisible()
|
|
await expect(page.locator('[data-kbx-surface="queue/content"]')).toBeVisible()
|
|
await expect(page.getByText(/정상 건은 표시하지 않습니다/)).toBeVisible()
|
|
})
|
|
|
|
test('HTTP 200이어도 해결 거절이면 성공으로 가장하지 않고 authoritative receipt로 복구한다', async ({ page }) => {
|
|
await page.route('**/api/operations/work-items/resolve', route => route.fulfill({
|
|
status: 200,
|
|
contentType: 'application/json',
|
|
body: JSON.stringify({ resolvedCount: 0, rejectedCount: 1 }),
|
|
}))
|
|
|
|
await page.goto('/operations/exceptions')
|
|
await page.getByText('주문 재고 부족', { exact: true }).dblclick()
|
|
await expect(page.getByRole('button', { name: '해결 처리' })).toBeVisible()
|
|
await page.getByRole('button', { name: '해결 처리' }).click()
|
|
|
|
const receipt=page.locator('[data-kbx-surface="authoritative-action-receipt"]')
|
|
await expect(receipt).toBeVisible()
|
|
await expect(receipt).toBeFocused()
|
|
await expect(receipt).toContainText('해결 처리가 완료되지 않았습니다.')
|
|
await expect(receipt).toContainText('해결 0건')
|
|
await expect(receipt).toContainText('거절 1건')
|
|
await expect(page.getByRole('button', { name: '최신 상태 조회' })).toBeVisible()
|
|
})
|
|
|
|
test('다음 긴급건은 demo DTO의 critical work item을 실제 Drawer로 연다', async ({ page }) => {
|
|
await page.goto('/operations/exceptions')
|
|
const nextUrgent=page.getByRole('button', { name: '다음 긴급건' })
|
|
await expect(nextUrgent).toBeEnabled()
|
|
await nextUrgent.click()
|
|
await expect(page.getByText('출고 연계 지연', { exact: true })).toBeVisible()
|
|
await expect(page.getByRole('button', { name: '재처리' })).toBeVisible()
|
|
})
|
|
})
|