feat: 修复测试套件问题并添加Woodpecker CI配置

- 修复API测试认证问题:创建全局认证设置,更新Playwright配置
- 优化回归测试稳定性:增加超时时间到15秒,修复定位器
- 创建Woodpecker CI工作流:CI、部署和质量门禁配置
- 添加Jest配置和测试脚本
- 移除登录页面的默认账号密码显示(安全问题修复)
This commit is contained in:
张翔
2026-03-09 10:26:02 +08:00
parent 96c96fe75d
commit 6d92024b63
68 changed files with 5584 additions and 167 deletions
@@ -6,7 +6,7 @@ export class LighthouseRunner {
async runLighthouse(url: string): Promise<LighthouseResult> {
const results = await this.page.evaluate(async () => {
return new Promise((resolve) => {
return new Promise<LighthouseResult>((resolve) => {
if (!(window as any).lighthouse) {
resolve({
performance: 0,
@@ -46,7 +46,16 @@ export class LighthouseRunner {
};
}> {
const results = await this.page.evaluate(async () => {
return new Promise((resolve) => {
return new Promise<{
score: number;
metrics: {
firstContentfulPaint: number;
largestContentfulPaint: number;
cumulativeLayoutShift: number;
firstInputDelay: number;
speedIndex: number;
};
}>((resolve) => {
if (!(window as any).lighthouse) {
resolve({
score: 0,
@@ -61,18 +70,17 @@ export class LighthouseRunner {
return;
}
(window as any).lighthouse(location.href, {
(window as any).lighthouse(window.location.href, {
onlyCategories: ['performance']
}).then((result: any) => {
const audits = result.audits;
resolve({
score: Math.round(result.categories.performance.score * 100),
metrics: {
firstContentfulPaint: audits['first-contentful-paint'].numericValue,
largestContentfulPaint: audits['largest-contentful-paint'].numericValue,
cumulativeLayoutShift: audits['cumulative-layout-shift'].numericValue,
firstInputDelay: audits['max-potential-fid'].numericValue,
speedIndex: audits['speed-index'].numericValue
firstContentfulPaint: result.audits['first-contentful-paint'].numericValue,
largestContentfulPaint: result.audits['largest-contentful-paint'].numericValue,
cumulativeLayoutShift: result.audits['cumulative-layout-shift'].numericValue,
firstInputDelay: result.audits['max-potential-fid'].numericValue,
speedIndex: result.audits['speed-index'].numericValue
}
});
});