文件
Henglianshutong/tests/verify_voucher_page_spec.js

75 行
2.6 KiB
JavaScript

const fs = require('fs');
const path = require('path');
let passed = 0;
let failed = 0;
function assert(condition, testName, detail = '') {
if (condition) {
console.log(` [PASS] ${testName}`);
passed++;
} else {
console.error(` [FAIL] ${testName} - ${detail}`);
failed++;
}
}
console.log("========================================================");
console.log(" 兑换券页面对齐dmepa页面规格与黑金卡片交互测试");
console.log("========================================================\n");
// 1. 验证 voucher.vue 存在性
const voucherVuePath = path.resolve(__dirname, '../uniapp/pages/commission/voucher.vue');
assert(fs.existsSync(voucherVuePath), 'voucher.vue 文件存在');
const content = fs.readFileSync(voucherVuePath, 'utf-8');
// 2. 验证黑金尊享卡片结构对齐
assert(
content.includes('asset-card') && content.includes('madow-hero') || content.includes('voucher-hero'),
'包含黑金资产大卡片与核心大字数展示结构',
'未包含类似 madow.vue 的黑金尊享卡片'
);
// 3. 验证 4 项核心数据指标完整对齐
assert(
content.includes('voucher_total') &&
content.includes('voucher_released') &&
content.includes('voucher_used') &&
content.includes('voucher_available'),
'包含累计获得、已释放、已使用、可用兑换券 4 项核心指标完整绑定',
'缺少核心兑换券指标'
);
// 4. 验证胶囊指示栏与规则弹窗
assert(
content.includes('su-popup') && content.includes('showHelp') && content.includes('释放规则'),
'包含释放规则按钮与 su-popup 规则说明弹窗',
'缺少规则弹窗交互'
);
// 5. 验证订单卡片流与进度展示
assert(
content.includes('log-card') || content.includes('plan-card'),
'订单释放计划升级为卡片流形式',
'仍为旧版普通边框单列表'
);
assert(
content.includes('released_days') || content.includes('total_days') || content.includes('planProgress'),
'卡片流中计算并展示释放天数与线性进度条',
'缺少释放天数或进度条'
);
// 6. 验证快捷兑换入口
assert(
content.includes('/pages/index/index') || content.includes('/pages/goods/list') || content.includes('去兑换'),
'提供前往商城的兑换引导入口',
'缺少商城引导'
);
console.log("\n--------------------------------------------------------");
console.log(`测试执行结果: 通过 ${passed} 项, 失败 ${failed} 项`);
console.log("========================================================");
process.exit(failed === 0 ? 0 : 1);