// @ts-check
const { test, expect } = require('@playwright/test');
const { login } = require('./helpers/auth');

test.describe('사이트 메뉴 (/bag/*) 페이지 접근', () => {
  test.beforeEach(async ({ page }) => {
    await login(page, 'local');
  });

  test('기본정보관리', async ({ page }) => {
    await page.goto('/bag/basic-info');
    await expect(page).toHaveURL(/\/bag\/basic-info/);
    await expect(page.locator('text=기본코드 종류')).toBeVisible();
  });

  test('발주 입고 관리', async ({ page }) => {
    await page.goto('/bag/purchase-inbound');
    await expect(page).toHaveURL(/\/bag\/purchase-inbound/);
    await expect(page.locator('text=발주 현황')).toBeVisible();
  });

  test('불출 관리', async ({ page }) => {
    await page.goto('/bag/issue');
    await expect(page).toHaveURL(/\/bag\/issue/);
    await expect(page.locator('th:has-text("불출일")')).toBeVisible();
  });

  test('재고 관리', async ({ page }) => {
    await page.goto('/bag/inventory');
    await expect(page).toHaveURL(/\/bag\/inventory/);
    await expect(page.locator('th:has-text("현재재고")')).toBeVisible();
  });

  test('판매 관리', async ({ page }) => {
    await page.goto('/bag/sales');
    await expect(page).toHaveURL(/\/bag\/sales/);
    await expect(page.locator('text=주문 접수')).toBeVisible();
  });

  test('판매 현황', async ({ page }) => {
    await page.goto('/bag/sales-stats');
    await expect(page).toHaveURL(/\/bag\/sales-stats/);
    await expect(page.locator('th:has-text("봉투코드")')).toBeVisible();
  });

  test('봉투 수불 관리', async ({ page }) => {
    await page.goto('/bag/flow');
    await expect(page).toHaveURL(/\/bag\/flow/);
    await expect(page.locator('th:has-text("현재재고")')).toBeVisible();
  });

  test('통계 분석 관리', async ({ page }) => {
    await page.goto('/bag/analytics');
    await expect(page).toHaveURL(/\/bag\/analytics/);
    await expect(page.locator('main >> text=Phase 6에서 구현 예정')).toBeVisible();
  });

  test('창', async ({ page }) => {
    await page.goto('/bag/window');
    await expect(page).toHaveURL(/\/bag\/window/);
    await expect(page.locator('text=창 관리')).toBeVisible();
  });

  test('도움말', async ({ page }) => {
    await page.goto('/bag/help');
    await expect(page).toHaveURL(/\/bag\/help/);
    await expect(page.locator('text=시스템 개요')).toBeVisible();
  });
});

test.describe('홈페이지 네비게이션 메뉴 링크', () => {
  test('메뉴 클릭으로 각 페이지 이동', async ({ page }) => {
    await login(page, 'local');
    await page.goto('/');

    // 발주 입고 관리 메뉴 클릭
    await page.click('a:has-text("발주 입고 관리")');
    await expect(page).toHaveURL(/\/bag\/purchase-inbound/);
  });
});
