merge: 운영 개요 변경 이력 안내 제거 통합

This commit is contained in:
2026-08-21 00:56:15 +00:00
2 changed files with 32 additions and 49 deletions
@@ -126,6 +126,19 @@ test('bootstrap superuser can navigate the administrator workspace from the lobb
await expect(page).toHaveURL(/\/gateway\/admin$/);
await expect(page.getByRole('heading', { name: '운영 개요' })).toBeVisible();
await expect(page.getByText('관리 대상을 선택하세요.')).toBeVisible();
await expect(page.getByRole('region', { name: '관리 원칙' })).toHaveCount(0);
await expect(page.getByText('작업 영역이 분리되었습니다.')).toHaveCount(0);
const overviewGrid = page.getByRole('region', { name: '관리 기능' });
const desktopOverviewGeometry = await overviewGrid.evaluate((element) => {
const rect = element.getBoundingClientRect();
return { left: rect.left, right: rect.right, top: rect.top, width: rect.width };
});
expect(desktopOverviewGeometry.top).toBeLessThan(300);
await writeFile(
testInfo.outputPath('admin-overview-desktop-geometry.json'),
JSON.stringify(desktopOverviewGeometry)
);
const navigation = page.getByRole('navigation', { name: '관리자 메뉴' });
await expect(navigation).toBeVisible();
const userLink = navigation.getByRole('link', { name: '사용자 관리' });
@@ -148,6 +161,24 @@ test('bootstrap superuser can navigate the administrator workspace from the lobb
await writeFile(testInfo.outputPath('admin-overview-mobile-geometry.json'), JSON.stringify(geometry));
await page.screenshot({ path: testInfo.outputPath('admin-overview-mobile-menu.png'), fullPage: true });
await page.getByRole('button', { name: '관리자 메뉴' }).click();
await expect(navigation).toBeHidden();
await page.evaluate(() => window.scrollTo(0, 0));
await expect.poll(() => page.evaluate(() => window.scrollY)).toBe(0);
const mobileOverviewGeometry = await overviewGrid.evaluate((element) => {
const rect = element.getBoundingClientRect();
return { left: rect.left, right: rect.right, top: rect.top, width: rect.width };
});
expect(mobileOverviewGeometry.left).toBeGreaterThanOrEqual(0);
expect(mobileOverviewGeometry.right).toBeLessThanOrEqual(390);
expect(mobileOverviewGeometry.top).toBeLessThan(340);
await writeFile(
testInfo.outputPath('admin-overview-mobile-content-geometry.json'),
JSON.stringify(mobileOverviewGeometry)
);
await page.screenshot({ path: testInfo.outputPath('admin-overview-mobile-content.png'), fullPage: true });
await page.getByRole('button', { name: '관리자 메뉴' }).click();
await navigation.getByRole('link', { name: 'Gateway 릴리스' }).click();
await expect(page).toHaveURL(/\/gateway\/admin\/releases$/);
await expect(page.getByRole('heading', { name: 'Gateway 릴리스', level: 1 })).toBeVisible();
@@ -77,19 +77,7 @@ onMounted(async () => {
</script>
<template>
<AdminConsoleLayout
title="운영 개요"
description="관리 대상을 먼저 선택하세요. 위험도가 높은 변경과 배포 이력은 각 영역에서 분리해 확인할 수 있습니다."
eyebrow="Admin workspace"
>
<section class="overview-guide" aria-label="관리 원칙">
<div>
<strong>작업 영역이 분리되었습니다.</strong>
<p>계정 변경, 서버 설정, 버전 배포가 화면에 섞이지 않도록 책임별로 나누었습니다.</p>
</div>
<span>권한 검사는 기존 서버 정책을 그대로 따릅니다.</span>
</section>
<AdminConsoleLayout title="운영 개요" description="관리 대상을 선택하세요." eyebrow="Admin workspace">
<section class="overview-grid" aria-label="관리 기능">
<RouterLink
v-for="section in sections.filter((entry) => entry.visible)"
@@ -108,37 +96,6 @@ onMounted(async () => {
</template>
<style scoped>
.overview-guide {
display: flex;
align-items: center;
justify-content: space-between;
gap: 20px;
margin-bottom: 22px;
border: 1px solid #3f3f46;
border-radius: 10px;
background: #18181b;
padding: 18px 20px;
}
.overview-guide strong {
color: #f4f4f5;
font-size: 14px;
}
.overview-guide p,
.overview-guide span {
margin: 4px 0 0;
color: #a1a1aa;
font-size: 12px;
line-height: 1.5;
}
.overview-guide > span {
flex: 0 0 auto;
margin: 0;
color: #fbbf24;
}
.overview-grid {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
@@ -214,11 +171,6 @@ onMounted(async () => {
}
@media (max-width: 700px) {
.overview-guide {
align-items: flex-start;
flex-direction: column;
}
.overview-grid {
grid-template-columns: 1fr;
}