Files
jiaowu-test/verify_remaining_positions_logic.cjs

100 lines
4.1 KiB
JavaScript
Raw Permalink Normal View History

// 验证岗位剩余招聘量隐藏逻辑
const fs = require('fs');
const path = require('path');
console.log('🔍 验证岗位剩余招聘量隐藏逻辑\n');
console.log('='.repeat(80));
// 检查 JobInfoModal 组件
console.log('\n1. 检查 JobInfoModal/index.jsx');
const jsxContent = fs.readFileSync(
path.join(__dirname, 'src/pages/CompanyJobsPage/components/JobInfoModal/index.jsx'),
'utf-8'
);
// 查找剩余招聘量的展示逻辑
const remainingPositionsMatch = jsxContent.match(/\{[^}]*!data\?\.\isDelivered[^}]*[^}]*\}/s);
if (remainingPositionsMatch) {
console.log(' ✅ 找到岗位剩余招聘量展示逻辑');
const logicBlock = remainingPositionsMatch[0];
// 检查各个条件
const hasIsDeliveredCheck = logicBlock.includes('!data?.isDelivered');
console.log(` ${hasIsDeliveredCheck ? '✅' : '❌'} 检查已投递状态 (!data?.isDelivered)`);
const hasIsExpiredCheck = logicBlock.includes('!data?.isExpired');
console.log(` ${hasIsExpiredCheck ? '✅' : '❌'} 检查已过期状态 (!data?.isExpired)`);
const hasStatusExpiredCheck = logicBlock.includes("data?.status !== 'expired'");
console.log(` ${hasStatusExpiredCheck ? '✅' : '❌'} 检查status过期状态 (data?.status !== 'expired')`);
const hasHideDeliverButtonCheck = logicBlock.includes('!hideDeliverButton');
console.log(` ${hasHideDeliverButtonCheck ? '✅' : '❌'} 检查面试状态 (!hideDeliverButton)`);
const hasRemainingPositionsCheck = logicBlock.includes('data?.remainingPositions');
console.log(` ${hasRemainingPositionsCheck ? '✅' : '❌'} 检查剩余招聘量存在 (data?.remainingPositions)`);
console.log('\n 📋 完整逻辑:');
console.log(' 只有同时满足以下所有条件时才显示剩余招聘量:');
console.log(' 1. 岗位未投递 (!isDelivered)');
console.log(' 2. 岗位未过期 (!isExpired)');
console.log(' 3. 岗位状态不是expired (status !== "expired")');
console.log(' 4. 不隐藏投递按钮,即非面试状态点击 (!hideDeliverButton)');
console.log(' 5. 存在剩余招聘量数据 (remainingPositions)');
const allConditionsMet =
hasIsDeliveredCheck &&
hasIsExpiredCheck &&
hasStatusExpiredCheck &&
hasHideDeliverButtonCheck &&
hasRemainingPositionsCheck;
console.log(`\n ${allConditionsMet ? '✅' : '❌'} 所有必要条件都已实现`);
} else {
console.log(' ❌ 未找到岗位剩余招聘量展示逻辑');
}
// 检查 CompanyJobsPage 组件中的数据传递
console.log('\n2. 检查 CompanyJobsPage/index.jsx 数据传递');
const pageContent = fs.readFileSync(
path.join(__dirname, 'src/pages/CompanyJobsPage/index.jsx'),
'utf-8'
);
const hasIsFromInterviewFlag = pageContent.includes('isFromInterview');
console.log(` ${hasIsFromInterviewFlag ? '✅' : '❌'} 使用 isFromInterview 标识`);
const hasHideDeliverButtonProp = pageContent.includes('hideDeliverButton={isFromInterview}');
console.log(` ${hasHideDeliverButtonProp ? '✅' : '❌'} 将 isFromInterview 传递给 hideDeliverButton`);
const hasDeliveredJobsFlag = pageContent.includes('isDelivered: true');
console.log(` ${hasDeliveredJobsFlag ? '✅' : '❌'} 已投递岗位标记 isDelivered: true`);
console.log('\n' + '='.repeat(80));
const allChecksPassed =
remainingPositionsMatch &&
hasIsDeliveredCheck &&
hasIsExpiredCheck &&
hasStatusExpiredCheck &&
hasHideDeliverButtonCheck &&
hasRemainingPositionsCheck &&
hasIsFromInterviewFlag &&
hasHideDeliverButtonProp &&
hasDeliveredJobsFlag;
if (allChecksPassed) {
console.log('\n✅ 所有检查通过!岗位剩余招聘量隐藏逻辑已正确实现。\n');
console.log('📝 功能说明:');
console.log(' - ✅ 已投递岗位:不显示剩余招聘量');
console.log(' - ✅ 已过期岗位:不显示剩余招聘量');
console.log(' - ✅ 岗位面试状态中的岗位:不显示剩余招聘量');
console.log(' - ✅ 只有未投递、未过期的普通岗位才显示剩余招聘量');
} else {
console.log('\n⚠ 部分检查未通过,请检查上述标记为❌的项目。\n');
}