feat: add membership card course booking flow
This commit is contained in:
@@ -10,15 +10,26 @@ const expectIncludes = (content, expected, label) => {
|
||||
if (!content.includes(expected)) failures.push(`${label} is missing: ${expected}`)
|
||||
}
|
||||
|
||||
const expectExcludes = (content, unexpected, label) => {
|
||||
if (content.includes(unexpected)) failures.push(`${label} should not contain: ${unexpected}`)
|
||||
}
|
||||
|
||||
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')
|
||||
const availablePage = readFileSync(resolve(srcRoot, 'pages/comprehensive/membership/available-sessions.vue'), 'utf8')
|
||||
const bookingDetail = readFileSync(resolve(srcRoot, 'pages/comprehensive/membership/booking-detail.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(membershipApi, "url: '/api/membership/cards'", 'member cards')
|
||||
expectIncludes(membershipApi, 'cards/${cardId}/usage-records', 'card usage records')
|
||||
expectIncludes(membershipApi, "url: '/api/membership/available-courses'", 'available sessions')
|
||||
expectIncludes(membershipApi, "url: '/api/membership/bookings'", 'card bookings')
|
||||
expectIncludes(membershipApi, 'data: { card_id: cardId, session_id: sessionId }', 'card booking payload')
|
||||
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')
|
||||
@@ -26,6 +37,8 @@ expectIncludes(storedValueApi, 'toOrderBrief(data.order)', 'stored value order m
|
||||
expectIncludes(pagesJson, 'pages/comprehensive/mall/index', 'mall route')
|
||||
expectIncludes(mallPage, '储蓄卡', 'stored value UI copy')
|
||||
expectIncludes(mallPage, 'face_value', 'face value display')
|
||||
expectIncludes(availablePage, 'available_card_ids', 'available card selection')
|
||||
expectExcludes(bookingDetail, 'booking.order', 'card booking has no order')
|
||||
|
||||
if (failures.length) {
|
||||
console.error(`Comprehensive commerce verification failed with ${failures.length} issue(s):`)
|
||||
|
||||
Reference in New Issue
Block a user