fix: E2E 콤보박스 검증 테스트가 mud-popover-open 및 getByLabel을 사용하여 안정적(Robust)으로 동작하도록 전면 리팩토링하여 CI 실패 해결
TaxBaik CI/CD / build-and-deploy (push) Successful in 58s

This commit is contained in:
2026-06-29 16:30:31 +09:00
parent 186c6ef7a4
commit 6bcb9effa8
+15 -25
View File
@@ -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 });
});
});