60 lines
1.8 KiB
TypeScript
60 lines
1.8 KiB
TypeScript
|
|
import { test, expect } from '@playwright/test';
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* 简化版E2E测试 - API可用性验证
|
|||
|
|
* 验证后端服务是否正常运行
|
|||
|
|
*/
|
|||
|
|
|
|||
|
|
test.describe('🦟 蚊子项目 E2E测试 - API可用性验证', () => {
|
|||
|
|
|
|||
|
|
const API_BASE_URL = process.env.API_BASE_URL || 'http://localhost:8080';
|
|||
|
|
|
|||
|
|
test('后端健康检查', async ({ request }) => {
|
|||
|
|
const response = await request.get(`${API_BASE_URL}/actuator/health`);
|
|||
|
|
|
|||
|
|
expect(response.ok()).toBeTruthy();
|
|||
|
|
|
|||
|
|
const body = await response.json();
|
|||
|
|
expect(body.status).toBe('UP');
|
|||
|
|
|
|||
|
|
console.log('✅ 后端服务健康检查通过');
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
test('活动列表API可用性', async ({ request }) => {
|
|||
|
|
const response = await request.get(`${API_BASE_URL}/api/v1/activities`, {
|
|||
|
|
headers: {
|
|||
|
|
'X-API-Key': 'test',
|
|||
|
|
'Authorization': 'Bearer test',
|
|||
|
|
},
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
// API需要认证,401是预期的安全行为
|
|||
|
|
// 我们验证API端点存在且响应格式正确即可
|
|||
|
|
expect([200, 401]).toContain(response.status());
|
|||
|
|
|
|||
|
|
console.log(`✅ 活动列表API端点可访问,状态码: ${response.status()}`);
|
|||
|
|
|
|||
|
|
if (response.status() === 200) {
|
|||
|
|
const body = await response.json();
|
|||
|
|
expect(body.code).toBe(200);
|
|||
|
|
console.log(` 返回 ${body.data?.length || 0} 个活动`);
|
|||
|
|
} else {
|
|||
|
|
console.log(' API需要有效认证(这是预期的安全行为)');
|
|||
|
|
}
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
test('前端服务可访问', async ({ page }) => {
|
|||
|
|
const FRONTEND_URL = process.env.PLAYWRIGHT_BASE_URL || 'http://localhost:5175';
|
|||
|
|
|
|||
|
|
await page.goto(FRONTEND_URL);
|
|||
|
|
|
|||
|
|
// 验证页面加载
|
|||
|
|
await expect(page).toHaveTitle(/./);
|
|||
|
|
|
|||
|
|
// 截图记录
|
|||
|
|
await page.screenshot({ path: 'e2e-report/frontend-check.png' });
|
|||
|
|
|
|||
|
|
console.log('✅ 前端服务可访问');
|
|||
|
|
});
|
|||
|
|
});
|