/** * 用户中心 VIP 页状态卡契约(inc/helpers/user-center-renderers/vip-tab.php)。 * * 硬约束: * 1) 未开通用户不渲染到期时间行——状态标签已显示「未开通」,参考主题 * zibpay_user_page_tab_content_vip 对从未开通用户同样不输出任何到期 * 信息(仅生效中/永久/已过期才有); * 2) 生效中、永久、已过期三个分支的到期文案保持产出; * 3) 到期行整体按文案非空条件渲染,不留空壳 div。 */ const test = require('node:test'); const assert = require('node:assert'); const fs = require('node:fs'); const path = require('node:path'); const root = path.join(__dirname, '..', '..'); const read = (...seg) => fs.readFileSync(path.join(root, ...seg), 'utf8'); const vipTab = read('inc', 'helpers', 'user-center-renderers', 'vip-tab.php'); test('未开通用户不渲染到期时间行', () => { // 未开通初始化不再产出「到期时间:未开通」文案。 assert.ok(!vipTab.includes('到期时间:未开通'), '未开通不应再产出到期文案'); assert.match(vipTab, /\$vip_expiry_text\s*=\s*'';/); // 到期行按文案非空条件渲染。 assert.match(vipTab, /\$vip_expiry_text !== '' \? '