/**
 * 공통 인증 헬퍼
 */

const TEST_ACCOUNTS = {
  admin:  { id: 'tester_admin', password: 'test1234!', level: 4 },
  local:  { id: 'tester_local', password: 'test1234!', level: 3 },
  shop:   { id: 'tester_shop',  password: 'test1234!', level: 2 },
  user:   { id: 'tester_user',  password: 'test1234!', level: 1 },
};

/**
 * 로그인 수행
 * @param {import('@playwright/test').Page} page
 * @param {'admin'|'local'|'shop'|'user'} role
 */
async function login(page, role = 'admin') {
  const acct = TEST_ACCOUNTS[role];
  await page.goto('/login');
  await page.fill('input[name="login_id"]', acct.id);
  await page.fill('input[name="password"]', acct.password);
  await page.click('button[type="submit"]');
  // 로그인 후 리다이렉트 대기
  await page.waitForURL(url => !url.pathname.includes('/login'), { timeout: 10000 });
}

/**
 * 로그아웃 수행
 * @param {import('@playwright/test').Page} page
 */
async function logout(page) {
  await page.goto('/logout');
}

module.exports = { TEST_ACCOUNTS, login, logout };
