Files
taxbaik/tests/e2e/admin-pages-manual.spec.ts
T
kjh2064 35842b6765
TaxBaik CI/CD / build-and-deploy (push) Successful in 2m21s
Refine admin login flow and verification harness
2026-07-07 14:38:30 +09:00

83 lines
3.2 KiB
TypeScript

import { expect, test } from '@playwright/test';
import { navigateInBlazor } from './helpers/admin-auth';
import { captureEvidence } from './helpers/evidence';
const baseUrl = process.env.E2E_BASE_URL || 'https://www.taxbaik.com/taxbaik';
const username = process.env.E2E_ADMIN_USERNAME || 'test_admin';
const password = process.env.E2E_ADMIN_PASSWORD || 'admin123';
test.describe('Admin Pages E2E (Manual)', () => {
test('Login page loads', async ({ page }) => {
await page.goto(`${baseUrl}/admin/login`);
await expect(page.locator('text=관리자 로그인')).toBeVisible();
await expect(page.locator('input[placeholder*="사용자"]')).toBeVisible();
});
test('Dashboard page loads', async ({ page }) => {
await page.goto(`${baseUrl}/admin/login`);
await page.fill('input[name="username"]', username);
await page.fill('input[name="password"]', password);
await page.click('button[type="submit"]');
await navigateInBlazor(page, `${baseUrl}/admin/dashboard`);
// Check if dashboard loaded
const content = await page.content();
expect(content.includes('대시보드') || content.includes('세무')).toBeTruthy();
// Screenshot
await captureEvidence(page, test.info(), 'dashboard-manual');
});
test('Blog page loads', async ({ page }) => {
await page.goto(`${baseUrl}/admin/login`);
await page.fill('input[name="username"]', username);
await page.fill('input[name="password"]', password);
await page.click('button[type="submit"]');
await navigateInBlazor(page, `${baseUrl}/admin/dashboard`);
await navigateInBlazor(page, `${baseUrl}/admin/blog`);
const content = await page.content();
const loaded = content.includes('블로그') || page.url().includes('/admin/blog');
console.log(`Blog page loaded: ${loaded}, URL: ${page.url()}`);
await captureEvidence(page, test.info(), 'blog-manual');
});
test('Inquiry page loads', async ({ page }) => {
await page.goto(`${baseUrl}/admin/login`);
await page.fill('input[name="username"]', username);
await page.fill('input[name="password"]', password);
await page.click('button[type="submit"]');
await navigateInBlazor(page, `${baseUrl}/admin/dashboard`);
await navigateInBlazor(page, `${baseUrl}/admin/inquiries`);
const content = await page.content();
const loaded = content.includes('문의') || page.url().includes('/admin/inquiries');
console.log(`Inquiry page loaded: ${loaded}, URL: ${page.url()}`);
await captureEvidence(page, test.info(), 'inquiries-manual');
});
test('CRM pages load', async ({ page }) => {
await page.goto(`${baseUrl}/admin/login`);
await page.fill('input[name="username"]', username);
await page.fill('input[name="password"]', password);
await page.click('button[type="submit"]');
await navigateInBlazor(page, `${baseUrl}/admin/dashboard`);
const pages = [
'/admin/tax-profiles',
'/admin/contracts',
'/admin/consulting-activities'
];
for (const adminPage of pages) {
await navigateInBlazor(page, `${baseUrl}${adminPage}`);
const url = page.url();
console.log(`✅ Page loaded: ${adminPage} (URL: ${url})`);
await captureEvidence(page, test.info(), adminPage.replace(/\//g, '_'));
}
});
});