|
@@ -45,18 +45,35 @@ const TEST_USER_PHONE = '13800001111';
|
|
|
// MEDIUM 优先级修复: 移除硬编码默认密码,强制使用环境变量
|
|
// MEDIUM 优先级修复: 移除硬编码默认密码,强制使用环境变量
|
|
|
// 企业小程序登录密码(必须通过环境变量设置)
|
|
// 企业小程序登录密码(必须通过环境变量设置)
|
|
|
const TEST_USER_PASSWORD = process.env.TEST_ENTERPRISE_PASSWORD;
|
|
const TEST_USER_PASSWORD = process.env.TEST_ENTERPRISE_PASSWORD;
|
|
|
|
|
+// 后台管理员登录密码(必须通过环境变量设置)
|
|
|
|
|
+const TEST_ADMIN_PASSWORD = process.env.TEST_ADMIN_PASSWORD;
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
* 验证环境变量是否正确设置
|
|
* 验证环境变量是否正确设置
|
|
|
* @throws {Error} 如果必需的环境变量未设置
|
|
* @throws {Error} 如果必需的环境变量未设置
|
|
|
*/
|
|
*/
|
|
|
function validateEnvironmentVariables() {
|
|
function validateEnvironmentVariables() {
|
|
|
|
|
+ const missingVars: string[] = [];
|
|
|
|
|
+
|
|
|
if (!TEST_USER_PASSWORD) {
|
|
if (!TEST_USER_PASSWORD) {
|
|
|
|
|
+ missingVars.push('TEST_ENTERPRISE_PASSWORD');
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ if (!TEST_ADMIN_PASSWORD) {
|
|
|
|
|
+ missingVars.push('TEST_ADMIN_PASSWORD');
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ if (missingVars.length > 0) {
|
|
|
|
|
+ const varsList = missingVars.join(', ');
|
|
|
|
|
+ const setupInstructions = missingVars.map(v =>
|
|
|
|
|
+ ` export ${v}=你的密码`
|
|
|
|
|
+ ).join('\n');
|
|
|
|
|
+
|
|
|
throw new Error(
|
|
throw new Error(
|
|
|
- '环境变量 TEST_ENTERPRISE_PASSWORD 未设置!\n' +
|
|
|
|
|
|
|
+ `以下环境变量未设置:\n${varsList}\n\n` +
|
|
|
'请设置环境变量后重试:\n' +
|
|
'请设置环境变量后重试:\n' +
|
|
|
- 'export TEST_ENTERPRISE_PASSWORD=你的密码\n' +
|
|
|
|
|
- '或在 .env 文件中添加:TEST_ENTERPRISE_PASSWORD=你的密码'
|
|
|
|
|
|
|
+ setupInstructions + '\n' +
|
|
|
|
|
+ '\n或在 .env 文件中添加对应的环境变量'
|
|
|
);
|
|
);
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
@@ -499,7 +516,8 @@ test.describe('企业小程序人才列表页完整验证 (Story 13.9)', () => {
|
|
|
// 1. 后台登录
|
|
// 1. 后台登录
|
|
|
await adminPage.goto('http://localhost:8080/admin/login');
|
|
await adminPage.goto('http://localhost:8080/admin/login');
|
|
|
await adminPage.getByPlaceholder('请输入用户名').fill('admin');
|
|
await adminPage.getByPlaceholder('请输入用户名').fill('admin');
|
|
|
- await adminPage.getByPlaceholder('请输入密码').fill(process.env.TEST_ADMIN_PASSWORD || 'admin123');
|
|
|
|
|
|
|
+ // MEDIUM 优先级修复: 移除 fallback 密码,强制使用环境变量
|
|
|
|
|
+ await adminPage.getByPlaceholder('请输入密码').fill(TEST_ADMIN_PASSWORD!);
|
|
|
await adminPage.getByRole('button', { name: '登录' }).click();
|
|
await adminPage.getByRole('button', { name: '登录' }).click();
|
|
|
await adminPage.waitForURL('**/admin/dashboard', { timeout: TIMEOUTS.PAGE_LOAD });
|
|
await adminPage.waitForURL('**/admin/dashboard', { timeout: TIMEOUTS.PAGE_LOAD });
|
|
|
console.debug('[后台] 登录成功');
|
|
console.debug('[后台] 登录成功');
|
|
@@ -930,7 +948,8 @@ test.describe('企业小程序人才列表页完整验证 (Story 13.9)', () => {
|
|
|
// 1. 登录后台
|
|
// 1. 登录后台
|
|
|
await adminPage.goto('http://localhost:8080/admin/login');
|
|
await adminPage.goto('http://localhost:8080/admin/login');
|
|
|
await adminPage.getByPlaceholder('请输入用户名').fill('admin');
|
|
await adminPage.getByPlaceholder('请输入用户名').fill('admin');
|
|
|
- await adminPage.getByPlaceholder('请输入密码').fill(process.env.TEST_ADMIN_PASSWORD || 'admin123');
|
|
|
|
|
|
|
+ // MEDIUM 优先级修复: 移除 fallback 密码,强制使用环境变量
|
|
|
|
|
+ await adminPage.getByPlaceholder('请输入密码').fill(TEST_ADMIN_PASSWORD!);
|
|
|
await adminPage.getByRole('button', { name: '登录' }).click();
|
|
await adminPage.getByRole('button', { name: '登录' }).click();
|
|
|
await adminPage.waitForURL('**/admin/dashboard', { timeout: TIMEOUTS.PAGE_LOAD });
|
|
await adminPage.waitForURL('**/admin/dashboard', { timeout: TIMEOUTS.PAGE_LOAD });
|
|
|
|
|
|