37 lines
1.9 KiB
JavaScript
37 lines
1.9 KiB
JavaScript
import { readFileSync } from 'node:fs'
|
|
import { fileURLToPath } from 'node:url'
|
|
import { dirname, resolve } from 'node:path'
|
|
|
|
const root = resolve(dirname(fileURLToPath(import.meta.url)), '..')
|
|
const srcRoot = resolve(root, 'src')
|
|
const failures = []
|
|
|
|
const expectIncludes = (content, expected, label) => {
|
|
if (!content.includes(expected)) failures.push(`${label} is missing: ${expected}`)
|
|
}
|
|
|
|
const membershipApi = readFileSync(resolve(srcRoot, 'modules/comprehensive/api/membership.js'), 'utf8')
|
|
const storedValueApi = readFileSync(resolve(srcRoot, 'modules/comprehensive/api/storedValue.js'), 'utf8')
|
|
const pagesJson = readFileSync(resolve(srcRoot, 'pages.json'), 'utf8')
|
|
const mallPage = readFileSync(resolve(srcRoot, 'pages/comprehensive/mall/index.vue'), 'utf8')
|
|
|
|
expectIncludes(membershipApi, "url: '/api/membership/plans'", 'membership plans')
|
|
expectIncludes(membershipApi, "url: '/api/membership/orders'", 'membership order')
|
|
expectIncludes(membershipApi, 'data: { plan_id: planId }', 'membership payload')
|
|
expectIncludes(membershipApi, 'toOrderBrief(data.order)', 'membership order mapping')
|
|
expectIncludes(storedValueApi, "url: '/api/stored-value/cards'", 'stored value cards')
|
|
expectIncludes(storedValueApi, "url: '/api/stored-value/orders'", 'stored value order')
|
|
expectIncludes(storedValueApi, 'data: { card_id: cardId }', 'stored value payload')
|
|
expectIncludes(storedValueApi, 'toOrderBrief(data.order)', 'stored value order mapping')
|
|
expectIncludes(pagesJson, 'pages/comprehensive/mall/index', 'mall route')
|
|
expectIncludes(mallPage, '储蓄卡', 'stored value UI copy')
|
|
expectIncludes(mallPage, 'face_value', 'face value display')
|
|
|
|
if (failures.length) {
|
|
console.error(`Comprehensive commerce verification failed with ${failures.length} issue(s):`)
|
|
for (const failure of failures) console.error(`- ${failure}`)
|
|
process.exit(1)
|
|
}
|
|
|
|
console.log('Comprehensive commerce verification passed.')
|