fix: E2E 콤보박스 검증 테스트가 mud-popover-open 및 getByLabel을 사용하여 안정적(Robust)으로 동작하도록 전면 리팩토링하여 CI 실패 해결
TaxBaik CI/CD / build-and-deploy (push) Successful in 58s
TaxBaik CI/CD / build-and-deploy (push) Successful in 58s
This commit is contained in:
@@ -127,16 +127,14 @@ test.describe('admin CRM pages', () => {
|
||||
const addButton = page.getByRole('button', { name: /새 프로필 추가/ });
|
||||
await addButton.click();
|
||||
|
||||
// 사업 유형 선택 콤보박스 클릭
|
||||
const select = page.locator('.mud-select').filter({ hasText: '사업 유형' }).first();
|
||||
await expect(select).toBeVisible();
|
||||
await select.click();
|
||||
// Label을 매개로 인풋 영역 클릭
|
||||
await page.getByLabel('사업 유형').first().click();
|
||||
|
||||
// 팝업 레이어의 선택지 데이터 존재 유무 검증
|
||||
const listItems = page.locator('.mud-list-item');
|
||||
await expect(listItems.getByText('일반제조업')).toBeVisible();
|
||||
await expect(listItems.getByText('도소매업')).toBeVisible();
|
||||
await expect(listItems.getByText('서비스업')).toBeVisible();
|
||||
// 활성화된 팝오버(.mud-popover-open) 내에서 텍스트 노출 검증
|
||||
const popover = page.locator('.mud-popover-open');
|
||||
await expect(popover.getByText('일반제조업')).toBeVisible({ timeout: 5000 });
|
||||
await expect(popover.getByText('도소매업')).toBeVisible({ timeout: 5000 });
|
||||
await expect(popover.getByText('서비스업')).toBeVisible({ timeout: 5000 });
|
||||
});
|
||||
|
||||
test('TaxFilingSchedules form displays filing type combo choices', async ({ page }) => {
|
||||
@@ -144,15 +142,11 @@ test.describe('admin CRM pages', () => {
|
||||
const addButton = page.getByRole('button', { name: /새 일정 추가/ });
|
||||
await addButton.click();
|
||||
|
||||
// 신고 유형 선택 콤보박스 클릭
|
||||
const select = page.locator('.mud-select').filter({ hasText: '신고 유형' }).first();
|
||||
await expect(select).toBeVisible();
|
||||
await select.click();
|
||||
await page.getByLabel('신고 유형').first().click();
|
||||
|
||||
// 선택지 데이터 존재 검증
|
||||
const listItems = page.locator('.mud-list-item');
|
||||
await expect(listItems.getByText('종합소득세')).toBeVisible();
|
||||
await expect(listItems.getByText('부가가치세')).toBeVisible();
|
||||
const popover = page.locator('.mud-popover-open');
|
||||
await expect(popover.getByText('종합소득세')).toBeVisible({ timeout: 5000 });
|
||||
await expect(popover.getByText('부가가치세')).toBeVisible({ timeout: 5000 });
|
||||
});
|
||||
|
||||
test('Contracts form displays service type combo choices', async ({ page }) => {
|
||||
@@ -160,14 +154,10 @@ test.describe('admin CRM pages', () => {
|
||||
const addButton = page.getByRole('button', { name: /새 계약 추가/ });
|
||||
await addButton.click();
|
||||
|
||||
// 서비스 유형 선택 콤보박스 클릭
|
||||
const select = page.locator('.mud-select').filter({ hasText: '서비스 유형' }).first();
|
||||
await expect(select).toBeVisible();
|
||||
await select.click();
|
||||
await page.getByLabel('서비스 유형').first().click();
|
||||
|
||||
// 선택지 데이터 존재 검증
|
||||
const listItems = page.locator('.mud-list-item');
|
||||
await expect(listItems.getByText('개인 기장대리')).toBeVisible();
|
||||
await expect(listItems.getByText('법인 기장대리')).toBeVisible();
|
||||
const popover = page.locator('.mud-popover-open');
|
||||
await expect(popover.getByText('개인 기장대리')).toBeVisible({ timeout: 5000 });
|
||||
await expect(popover.getByText('법인 기장대리')).toBeVisible({ timeout: 5000 });
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user