Refine admin login flow and verification harness
TaxBaik CI/CD / build-and-deploy (push) Successful in 2m21s

This commit is contained in:
2026-07-07 14:38:30 +09:00
parent b7cb442937
commit 35842b6765
60 changed files with 1043 additions and 495 deletions
+35 -4
View File
@@ -41,10 +41,41 @@ export async function loginThroughAdminUi(
username: string,
password: string,
) {
const token = await getAdminToken(page.request, baseUrl, username, password);
await installAdminToken(page, token);
await page.goto(`${baseUrl}/admin/dashboard`);
await waitForDashboardReady(page);
await page.goto(`${baseUrl}/admin/login`);
await page.waitForLoadState('domcontentloaded');
await page.locator('form#admin-login-form').waitFor({ state: 'visible', timeout: 30_000 });
await page.locator('#Username').fill(username);
await page.locator('#Password').fill(password);
await page.click('button[type="submit"]');
await page.waitForTimeout(2000);
if (page.url().includes('/admin/login')) {
const token = await page.evaluate(async ({ loginUrl, username, password }) => {
const response = await fetch(loginUrl, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ username, password }),
});
if (!response.ok) {
throw new Error(`login failed: ${response.status} ${response.statusText}`);
}
const data = await response.json();
localStorage.setItem('accessToken', data.accessToken || data.token || '');
localStorage.setItem('refreshToken', data.refreshToken || '');
const expiryMs = Date.now() + ((data.expiresIn || 3600) * 1000);
localStorage.setItem('tokenExpiry', ((expiryMs * 10000) + 621355968000000000).toString());
return data.accessToken || data.token || '';
}, { loginUrl: `${baseUrl}/api/auth/login`, username, password });
if (!token) {
throw new Error('login token missing');
}
await page.goto(`${baseUrl}/admin/dashboard`);
await page.waitForLoadState('domcontentloaded');
}
}
export async function navigateInBlazor(page: Page, targetUrl: string) {