| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- import { test, expect } from '@playwright/test'
- test.describe('Machine Management E2E Tests', () => {
- // Skip all tests that require login
- const username = process.env.TEST_USERNAME || 'admin'
- const password = process.env.TEST_PASSWORD || 'admin123'
- async function login(page: any) {
- await page.goto('/login')
- await page.getByPlaceholder('请输入用户名').fill(username)
- await page.getByPlaceholder('请输入密码').fill(password)
- await page.getByRole('button', { name: '登 录' }).click()
- await expect(page).not.toHaveURL(/\/login/, { timeout: 10000 })
- }
- test.describe('Machine List Page', () => {
- test.skip('should display machine management page', async ({ page }) => {
- await login(page)
- await page.goto('/machine')
- // Verify page elements
- await expect(page.getByRole('button', { name: '新增机器' })).toBeVisible()
- await expect(page.getByRole('button', { name: '刷新列表' })).toBeVisible()
- await expect(page.locator('.el-table')).toBeVisible()
- })
- test.skip('should have correct table columns', async ({ page }) => {
- await login(page)
- await page.goto('/machine')
- // Check table headers
- await expect(page.getByText('机器ID')).toBeVisible()
- await expect(page.getByText('名称')).toBeVisible()
- await expect(page.getByText('位置')).toBeVisible()
- await expect(page.getByText('摄像头数')).toBeVisible()
- await expect(page.getByText('启用')).toBeVisible()
- })
- })
- test.describe('Add Machine Dialog', () => {
- test.skip('should open add dialog when clicking add button', async ({ page }) => {
- await login(page)
- await page.goto('/machine')
- await page.getByRole('button', { name: '新增机器' }).click()
- // Verify dialog opens
- await expect(page.getByRole('dialog')).toBeVisible()
- await expect(page.getByText('新增机器')).toBeVisible()
- await expect(page.getByPlaceholder('请输入机器ID')).toBeVisible()
- await expect(page.getByPlaceholder('请输入名称')).toBeVisible()
- await expect(page.getByPlaceholder('请输入位置')).toBeVisible()
- })
- test.skip('should validate required fields', async ({ page }) => {
- await login(page)
- await page.goto('/machine')
- await page.getByRole('button', { name: '新增机器' }).click()
- await page.getByRole('dialog').getByRole('button', { name: '确定' }).click()
- // Check validation errors
- await expect(page.getByText('请输入机器ID')).toBeVisible()
- await expect(page.getByText('请输入名称')).toBeVisible()
- })
- test.skip('should close dialog when clicking cancel', async ({ page }) => {
- await login(page)
- await page.goto('/machine')
- await page.getByRole('button', { name: '新增机器' }).click()
- await expect(page.getByRole('dialog')).toBeVisible()
- await page.getByRole('dialog').getByRole('button', { name: '取消' }).click()
- await expect(page.getByRole('dialog')).not.toBeVisible()
- })
- })
- test.describe('Navigation', () => {
- test.skip('should have machine menu item in sidebar', async ({ page }) => {
- await login(page)
- // Check sidebar menu
- await expect(page.getByText('机器管理')).toBeVisible()
- })
- test.skip('should navigate to machine page from sidebar', async ({ page }) => {
- await login(page)
- await page.getByText('机器管理').click()
- await expect(page).toHaveURL(/\/machine/)
- })
- })
- })
|