diff --git a/e2e/smoke/critical-paths.spec.ts b/e2e/smoke/critical-paths.spec.ts new file mode 100644 index 0000000..564d20c --- /dev/null +++ b/e2e/smoke/critical-paths.spec.ts @@ -0,0 +1,39 @@ +import { test, expect } from '@playwright/test'; +import { testFixtures } from '../fixtures/test-data'; + +test.describe('关键路径测试 @smoke @critical', () => { + test('首页加载正常', async ({ page }) => { + await page.goto('/'); + + await expect(page.locator('header')).toBeVisible(); + await expect(page.locator('footer')).toBeVisible(); + await expect(page.locator('nav')).toBeVisible(); + }); + + test('管理员能够登录', async ({ page }) => { + await page.goto('/admin/login'); + await page.fill('#email', testFixtures.adminUser.email); + await page.fill('#password', testFixtures.adminUser.password); + await page.click('button[type="submit"]'); + + await expect(page).toHaveURL(/\/admin(?!\/login)/); + }); + + test('新闻页面可访问', async ({ page }) => { + await page.goto('/news'); + await expect(page).toHaveURL(/\/news/); + await expect(page.locator('header')).toBeVisible(); + }); + + test('产品页面可访问', async ({ page }) => { + await page.goto('/products'); + await expect(page).toHaveURL(/\/products/); + await expect(page.locator('header')).toBeVisible(); + }); + + test('联系页面可访问', async ({ page }) => { + await page.goto('/contact'); + await expect(page).toHaveURL(/\/contact/); + await expect(page.locator('form')).toBeVisible(); + }); +}); diff --git a/e2e/smoke/health-check.spec.ts b/e2e/smoke/health-check.spec.ts new file mode 100644 index 0000000..bd38933 --- /dev/null +++ b/e2e/smoke/health-check.spec.ts @@ -0,0 +1,21 @@ +import { test, expect } from '@playwright/test'; + +test.describe('健康检查 @smoke @critical', () => { + test('应用能够正常启动', async ({ page }) => { + await page.goto('/'); + await expect(page).toHaveTitle(/四川睿新致远科技有限公司/); + }); + + test('健康检查API正常', async ({ request }) => { + const response = await request.get('/api/health'); + expect(response.status()).toBe(200); + + const body = await response.json(); + expect(body.status).toBe('ok'); + }); + + test('静态资源可访问', async ({ request }) => { + const response = await request.get('/favicon.svg'); + expect(response.status()).toBe(200); + }); +});