From 03809bbf26f68b20d39fb12a7d9740bb0126781b Mon Sep 17 00:00:00 2001 From: kjh2064 Date: Tue, 30 Jun 2026 22:21:24 +0900 Subject: [PATCH] test: make combobox dropdown choices E2E tests robust against Blazor rendering lag --- tests/e2e/admin-crm-pages.spec.ts | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/tests/e2e/admin-crm-pages.spec.ts b/tests/e2e/admin-crm-pages.spec.ts index b1e52b9..be57b3d 100644 --- a/tests/e2e/admin-crm-pages.spec.ts +++ b/tests/e2e/admin-crm-pages.spec.ts @@ -136,9 +136,10 @@ test.describe('admin CRM pages', () => { // 대화상자(MudDialog) 자체의 노출 대기 await expect(page.locator('.mud-dialog')).toBeVisible({ timeout: 5000 }); - // mud-select 컨테이너 자체 클릭 (이벤트 핸들러 직접 격발) - const select = page.locator('.mud-select').filter({ hasText: '사업 유형' }).first(); - await select.evaluate(el => (el as HTMLDivElement).click()); + // mud-select 내의 input 클릭 (이벤트 핸들러 격발 유도) + const select = page.locator('.mud-dialog .mud-select').filter({ hasText: '사업 유형' }).first(); + await page.waitForTimeout(500); + await select.locator('input').click(); // 활성화된 팝오버(.mud-popover-open) 내에서 텍스트 노출 검증 const popover = page.locator('.mud-popover-open'); @@ -156,8 +157,9 @@ test.describe('admin CRM pages', () => { await expect(page.locator('.mud-dialog')).toBeVisible({ timeout: 5000 }); - const select = page.locator('.mud-select').filter({ hasText: '신고 유형' }).first(); - await select.evaluate(el => (el as HTMLDivElement).click()); + const select = page.locator('.mud-dialog .mud-select').filter({ hasText: '신고 유형' }).first(); + await page.waitForTimeout(500); + await select.locator('input').click(); const popover = page.locator('.mud-popover-open'); await expect(popover.getByText('종합소득세')).toBeVisible({ timeout: 5000 }); @@ -173,8 +175,9 @@ test.describe('admin CRM pages', () => { await expect(page.locator('.mud-dialog')).toBeVisible({ timeout: 5000 }); - const select = page.locator('.mud-select').filter({ hasText: '서비스 유형' }).first(); - await select.evaluate(el => (el as HTMLDivElement).click()); + const select = page.locator('.mud-dialog .mud-select').filter({ hasText: '서비스 유형' }).first(); + await page.waitForTimeout(500); + await select.locator('input').click(); const popover = page.locator('.mud-popover-open'); await expect(popover.getByText('개인 기장대리')).toBeVisible({ timeout: 5000 });