지정판매소 현황·바코드 출력 기능을 전용 화면으로 확장

지정판매소 신규/취소 현황을 사용자 지자체 기준으로 고정 조회하도록 정리하고, 동별 요약과 컬럼 설명 툴팁을 추가했습니다.
또한 지정판매소 바코드 출력 메뉴를 전용 URL로 분리하고 선택 인쇄/출력 레이아웃을 GBMS 형태에 맞춰 구현했습니다.
This commit is contained in:
taekyoungc
2026-04-14 00:14:53 +09:00
parent 72578f200c
commit 734a55833b
13 changed files with 2160 additions and 167 deletions

View File

@@ -60,7 +60,12 @@ const BAG_PATHS = [
'/bag/free-recipients',
'/bag/free-recipients/create',
'/bag/designated-shops',
'/bag/designated-shops/browse',
'/bag/designated-shops/status',
'/bag/designated-shops/status/export?year=2026&ds_gugun_code=&granularity=gugun',
'/bag/designated-shops/district-new-cancel',
'/bag/designated-shops/district-new-cancel/export?year=2026',
'/bag/designated-shops/barcode',
'/bag/bag-prices',
'/bag/bag-prices/create',
'/bag/packaging-units/manage',

View File

@@ -85,13 +85,15 @@ test.describe('P2-15: 지정판매소 다조건 조회', () => {
await loginAsLocal(page);
await page.goto('/bag/designated-shops?ds_name=CU');
await expect(page).toHaveURL(/ds_name=CU/);
await expect(page.locator('table.data-table')).toBeVisible();
await expect(page.locator('input[name="ds_name"]')).toHaveValue('CU');
await expect(page.locator('#ds-list-body')).toBeAttached();
});
test('상태 필터', async ({ page }) => {
await loginAsLocal(page);
await page.goto('/bag/designated-shops?ds_state=1');
await expect(page.locator('table.data-table')).toBeVisible();
await expect(page.locator('select[name="ds_state"]')).toHaveValue('1');
await expect(page.locator('#ds-list-body')).toBeAttached();
});
test('검색 폼에서 이름 입력 후 조회', async ({ page }) => {
@@ -126,6 +128,17 @@ test.describe('P2-18: 지정판매소 현황', () => {
await page.goto('/bag/designated-shops/status');
await expect(page).toHaveURL(/\/status/);
await expect(page.locator('table.data-table').first()).toBeVisible();
await expect(page.getByRole('columnheader', { name: '종전(전년도말)' })).toBeVisible();
await expect(page.getByRole('link', { name: '엑셀저장' })).toBeVisible();
});
test('GBMS형 신규/취소 현황(구·군 고정)', async ({ page }) => {
await loginAsLocal(page);
await page.goto('/bag/designated-shops/district-new-cancel');
await expect(page).toHaveURL(/district-new-cancel/);
await expect(page.locator('.gbms-dnc-table')).toBeVisible();
await expect(page.getByRole('columnheader', { name: '군·구' })).toBeVisible();
await expect(page.getByRole('link', { name: '엑셀저장' })).toBeVisible();
});
});
@@ -279,9 +292,9 @@ test.describe('사이트 메뉴 CRUD 동작', () => {
test.describe('엑셀 내보내기 다운로드', () => {
test('지정판매소 엑셀', async ({ page }) => {
await loginAsLocal(page);
await page.goto('/bag/designated-shops');
await page.goto('/bag/designated-shops/browse');
const downloadPromise = page.waitForEvent('download', { timeout: 10000 });
await page.locator('a[href*="export"]').first().click();
await page.locator('a[href*="designated-shops/export"]').first().click();
const download = await downloadPromise;
expect(download.suggestedFilename()).toContain('.csv');
});