diff --git a/tests/e2e/admin-crm-pages.spec.ts b/tests/e2e/admin-crm-pages.spec.ts index 4eeba42..5236b63 100644 --- a/tests/e2e/admin-crm-pages.spec.ts +++ b/tests/e2e/admin-crm-pages.spec.ts @@ -15,75 +15,55 @@ test.describe('admin CRM pages', () => { await navigateInBlazor(page, `${baseUrl}/admin/tax-profiles`); await expect(page).toHaveURL(/\/admin\/tax-profiles$/); - // 제목 확인 - await expect(page.getByText('세무 프로필 관리')).toBeVisible({ timeout: 15_000 }); + await expect(page.locator('.admin-page-title')).toHaveText('세무 프로필', { timeout: 15_000 }); - // 새 프로필 추가 버튼 확인 await expect(page.getByRole('button', { name: /새 프로필 추가/ })).toBeVisible(); - // MudDataGrid 로드 확인 (테이블 or 비어있음 메시지) - const gridOrEmpty = page.locator('.admin-grid, .mud-alert'); - await expect(gridOrEmpty).toBeVisible({ timeout: 15_000 }); + await expect(page.locator('.admin-grid, .mud-alert')).toBeVisible({ timeout: 15_000 }); }); test('TaxFilingSchedules page loads with D-day tracking', async ({ page }) => { await navigateInBlazor(page, `${baseUrl}/admin/tax-filing-schedules`); await expect(page).toHaveURL(/\/admin\/tax-filing-schedules$/); - // 제목 확인 - await expect(page.getByText('신고 일정 관리')).toBeVisible({ timeout: 15_000 }); + await expect(page.locator('.admin-page-title')).toHaveText('신고 일정', { timeout: 15_000 }); - // 새 일정 추가 버튼 await expect(page.getByRole('button', { name: /새 일정 추가/ })).toBeVisible(); - // 그리드 로드 - const gridOrEmpty = page.locator('.admin-grid, .mud-alert'); - await expect(gridOrEmpty).toBeVisible({ timeout: 15_000 }); + await expect(page.locator('.admin-grid, .mud-alert')).toBeVisible({ timeout: 15_000 }); }); test('Contracts page loads with MRR display', async ({ page }) => { await navigateInBlazor(page, `${baseUrl}/admin/contracts`); await expect(page).toHaveURL(/\/admin\/contracts$/); - // 제목 확인 - await expect(page.getByText('계약 관리')).toBeVisible({ timeout: 15_000 }); + await expect(page.locator('.admin-page-title')).toHaveText('계약 관리', { timeout: 15_000 }); - // 새 계약 추가 버튼 await expect(page.getByRole('button', { name: /새 계약 추가/ })).toBeVisible(); - // 그리드 로드 - const gridOrEmpty = page.locator('.admin-grid, .mud-alert'); - await expect(gridOrEmpty).toBeVisible({ timeout: 15_000 }); + await expect(page.locator('.admin-grid, .mud-alert')).toBeVisible({ timeout: 15_000 }); }); test('ConsultingActivities page loads with activity records', async ({ page }) => { await navigateInBlazor(page, `${baseUrl}/admin/consulting-activities`); await expect(page).toHaveURL(/\/admin\/consulting-activities$/); - // 제목 확인 - await expect(page.getByText('상담 활동 관리')).toBeVisible({ timeout: 15_000 }); + await expect(page.locator('.admin-page-title')).toHaveText('상담 활동 관리', { timeout: 15_000 }); - // 새 활동 기록 버튼 await expect(page.getByRole('button', { name: /새 활동 기록/ })).toBeVisible(); - // 그리드 로드 - const gridOrEmpty = page.locator('.admin-grid, .mud-alert'); - await expect(gridOrEmpty).toBeVisible({ timeout: 15_000 }); + await expect(page.locator('.admin-grid, .mud-alert')).toBeVisible({ timeout: 15_000 }); }); test('RevenueTrackings page loads with payment status tracking', async ({ page }) => { await navigateInBlazor(page, `${baseUrl}/admin/revenue-trackings`); await expect(page).toHaveURL(/\/admin\/revenue-trackings$/); - // 제목 확인 - await expect(page.getByText('수익 추적 관리')).toBeVisible({ timeout: 15_000 }); + await expect(page.locator('.admin-page-title')).toHaveText('수익 추적 관리', { timeout: 15_000 }); - // 새 청구 추가 버튼 await expect(page.getByRole('button', { name: /새 청구 추가/ })).toBeVisible(); - // 그리드 로드 - const gridOrEmpty = page.locator('.admin-grid, .mud-alert'); - await expect(gridOrEmpty).toBeVisible({ timeout: 15_000 }); + await expect(page.locator('.admin-grid, .mud-alert')).toBeVisible({ timeout: 15_000 }); }); test('CRM navigation group is visible and expandable', async ({ page }) => { diff --git a/tests/e2e/admin-login.spec.ts b/tests/e2e/admin-login.spec.ts index 1247407..402ce2c 100644 --- a/tests/e2e/admin-login.spec.ts +++ b/tests/e2e/admin-login.spec.ts @@ -27,7 +27,7 @@ test.describe('admin authentication', () => { await page.getByRole('button', { name: '로그인' }).click(); await expect(page).toHaveURL(/\/taxbaik\/admin\/dashboard$/); - await expect(page.getByRole('heading', { name: '대시보드' })).toBeVisible({ timeout: 20_000 }); + await expect(page.getByRole('heading', { name: '대시보드' }).first()).toBeVisible({ timeout: 20_000 }); await expect(page.getByRole('link', { name: /로그아웃/ })).toBeVisible(); expect(consoleErrors, 'browser console/page errors').toEqual([]); }); diff --git a/tests/e2e/inquiry-detail.spec.ts b/tests/e2e/inquiry-detail.spec.ts index 950c175..9439ae7 100644 --- a/tests/e2e/inquiry-detail.spec.ts +++ b/tests/e2e/inquiry-detail.spec.ts @@ -39,9 +39,11 @@ test.describe('inquiry detail', () => { await expect(page.getByText(phone, { exact: true }).first()).toBeVisible(); await expect(page.getByText(message, { exact: true }).first()).toBeVisible(); await expect(page.getByRole('button', { name: '신규' })).toBeVisible(); - await expect(page.getByRole('button', { name: '연락함' })).toBeVisible(); - await expect(page.getByRole('button', { name: '완료' })).toBeVisible(); - await expect(page.getByRole('button', { name: '문의 목록으로 돌아가기' })).toBeVisible(); - await expect(page.getByRole('link', { name: '다른 문의도 보기' })).toBeVisible(); + await expect(page.getByRole('button', { name: '상담중' })).toBeVisible(); + await expect(page.getByRole('button', { name: '계약완료' })).toBeVisible(); + await expect(page.getByRole('button', { name: '거절' })).toBeVisible(); + await expect(page.getByRole('button', { name: '종결' })).toBeVisible(); + await expect(page.getByRole('button', { name: '문의 목록으로' })).toBeVisible(); + await expect(page.getByRole('button', { name: '고객으로 등록' })).toBeVisible(); }); });