const assert = require('assert'); const fs = require('fs'); const source = fs.readFileSync('pagesHome/components/report/generateList.vue', 'utf8'); assert.match(source, /isReportGenerating\(item\)/); assert.match(source, /showGeneratingReminder/); assert.match(source, /guardReportOperation\(item\)/); assert.match(source, /@click="showReportSelector\(item\)"/); assert.match(source, /v-if="reportSelectorShow"/); assert.match(source, /背景报告需配合团队版评估数据生成/); assert.match(source, /教练报告需要配合团队版评估数据生成/); assert.match(source, /v-if="reportReminderShow"/); assert.match(source, /温馨提示<\/view>/); assert.match(source, /确定<\/view>/); assert.match(source, /selectReportArtifact\('background'\)/); assert.match(source, /selectReportArtifact\('professional'\)/); assert.match(source, /selectReportArtifact\('public'\)/); assert.match(source, />查看报告<\/view>/); assert.match(source, /evaluation-tabs/); assert.match(source, /总体评估结果/); assert.match(source, /团队发展建议/); assert.match(source, /evaluationTab === 'overall'/); assert.match(source, /evaluationTab === 'advice'/); assert.match(source, /保存提交/); assert.match(source, /取消/); assert.match(source, /\.evaluation-submit\{[^}]*background:\s*linear-gradient\(\s*90deg,\s*#33A7A7\s*0%,\s*#64BBBB\s*100%\)/); assert.match(source, /\.evaluation-submit\{[^}]*border-radius:\s*44rpx/); console.log('reportButtonAvailability.test.js: all assertions passed');