40 lines
2.0 KiB
TypeScript
40 lines
2.0 KiB
TypeScript
import { test, expect } from '@playwright/test'
|
|
|
|
test.describe('OMS-CLM-001 클레임 업무 흐름', () => {
|
|
test('선택 계약과 WorkflowBar가 실제 승인 Command까지 연결된다', async ({ page }) => {
|
|
await page.goto('/oms/claims')
|
|
await expect(page.locator('[data-screen-id="OMS-CLM-001"]')).toBeVisible()
|
|
await page.keyboard.press('F3')
|
|
await expect(page.getByText('CLM-260811-01', { exact: true })).toBeVisible()
|
|
|
|
await page.getByText('CLM-260811-01', { exact: true }).click()
|
|
const workflow=page.getByLabel('업무 상태')
|
|
await expect(workflow).toBeVisible()
|
|
await expect(workflow.getByRole('button', { name: '승인', exact: true })).toBeVisible()
|
|
await workflow.getByRole('button', { name: '승인', exact: true }).click()
|
|
|
|
const receipt=page.locator('[data-kbx-surface="claim-action-receipt"]')
|
|
await expect(receipt).toBeVisible()
|
|
await expect(receipt).toBeFocused()
|
|
await expect(receipt).toContainText('요청 1건 · 성공 1건 · 실패 0건')
|
|
})
|
|
|
|
test('승인 상태는 처리 시작으로 이어지고 보류는 명시적 상태로 표시된다', async ({ page }) => {
|
|
await page.goto('/oms/claims')
|
|
await page.getByLabel('상태').selectOption('APPROVED')
|
|
await page.keyboard.press('F3')
|
|
await page.getByText('CLM-260811-02', { exact: true }).click()
|
|
|
|
const workflow=page.getByLabel('업무 상태')
|
|
await expect(workflow).toContainText('승인')
|
|
await workflow.getByRole('button', { name: '처리 시작', exact: true }).click()
|
|
await expect(page.locator('[data-kbx-surface="claim-action-receipt"]')).toContainText('처리 시작 결과')
|
|
|
|
await page.getByLabel('상태').selectOption('HOLD')
|
|
await page.keyboard.press('F3')
|
|
await page.getByText('CLM-260811-04', { exact: true }).click()
|
|
await expect(page.getByLabel('업무 상태')).toContainText('보류')
|
|
await expect(page.getByLabel('업무 상태')).toContainText('현재 상태에서 실행 가능한 다음 작업이 없습니다.')
|
|
})
|
|
})
|