import { test, expect } from '@playwright/test';
import { login } from './helpers/auth';

test.describe('系統管理模組', () => {
    test.beforeEach(async ({ page }) => {
        await login(page);
    });

    test('應能進入角色權限管理頁面並顯示主要元素', async ({ page }) => {
        await page.goto('/admin/roles');
        await expect(page.locator('h1').filter({ hasText: '角色與權限' })).toBeVisible();
        await expect(page.locator('table')).toBeVisible();
        await expect(page.getByRole('button', { name: /新增角色/ })).toBeVisible();
    });

    test('應能進入員工帳號管理頁面並顯示主要元素', async ({ page }) => {
        await page.goto('/admin/users');
        await expect(page.getByRole('heading', { name: /使用者管理/ })).toBeVisible();
        await expect(page.locator('table')).toBeVisible();
        await expect(page.getByRole('button', { name: /新增使用者/ })).toBeVisible();
    });

    test('應能進入系統操作紀錄頁面並顯示主要元素', async ({ page }) => {
        await page.goto('/admin/activity-logs');
        await expect(page.getByRole('heading', { name: /操作紀錄/ })).toBeVisible();
        await expect(page.locator('table')).toBeVisible();
    });

    test('應能進入系統參數設定頁面並顯示主要元素', async ({ page }) => {
        await page.goto('/admin/settings');
        await expect(page.locator('h1').filter({ hasText: '系統設定' })).toBeVisible();
        await expect(page.getByRole('button', { name: /存檔|儲存/ })).toBeVisible();
    });
});
