mirror of
https://github.com/iflytek/skillhub.git
synced 2026-09-08 22:21:09 +00:00
Migrated from local desktop work (rescued from un-pushed commit 3b970865). 64 test cases with stable semantic selectors, covering pages that were previously untested.
43 lines
1.4 KiB
TypeScript
43 lines
1.4 KiB
TypeScript
import { expect, test } from '@playwright/test'
|
|
import { setEnglishLocale } from './helpers/auth-fixtures'
|
|
|
|
test.describe('Admin Labels Management (Real API)', () => {
|
|
test.beforeEach(async ({ page }) => {
|
|
await setEnglishLocale(page)
|
|
await page.context().setExtraHTTPHeaders({
|
|
'X-Mock-User-Id': 'local-admin',
|
|
})
|
|
})
|
|
|
|
test('TC_LABEL_001: displays label management page with title', async ({ page }) => {
|
|
await page.goto('/admin/labels')
|
|
|
|
await expect(page.getByRole('heading', { name: 'Label Management' })).toBeVisible()
|
|
})
|
|
|
|
test('TC_LABEL_002: shows create label button', async ({ page }) => {
|
|
await page.goto('/admin/labels')
|
|
|
|
await expect(page.getByRole('button', { name: /Create Label/i })).toBeVisible()
|
|
})
|
|
|
|
test('TC_LABEL_003: shows labels table or empty state', async ({ page }) => {
|
|
await page.goto('/admin/labels')
|
|
|
|
const hasTable = await page.getByRole('table').isVisible().catch(() => false)
|
|
|
|
if (hasTable) {
|
|
await expect(page.getByRole('columnheader', { name: /Label/i })).toBeVisible()
|
|
} else {
|
|
await expect(page.getByText(/No labels/i)).toBeVisible()
|
|
}
|
|
})
|
|
|
|
test('TC_LABEL_004: create label button opens dialog with slug field', async ({ page }) => {
|
|
await page.goto('/admin/labels')
|
|
|
|
await page.getByRole('button', { name: /Create Label/i }).click()
|
|
|
|
await expect(page.getByLabel(/Slug/i)).toBeVisible()
|
|
})
|
|
})
|