Files
qipai/scripts/check-miniapp-m08-a.mjs
T
2026-06-24 21:42:02 +08:00

59 lines
1.8 KiB
JavaScript

import assert from 'node:assert/strict';
import { readFileSync } from 'node:fs';
import { join } from 'node:path';
const root = new URL('..', import.meta.url).pathname.replace(/^\/([A-Za-z]:)/, '$1');
const read = (path) => readFileSync(join(root, path), 'utf8');
const appJson = JSON.parse(read('miniapp/app.json'));
for (const page of [
'pages/index/index',
'pages/store/detail',
'pages/room/detail',
'pages/orders/list',
'pages/orders/detail'
]) {
assert.ok(appJson.pages.includes(page), `${page} must be registered`);
}
const env = read('miniapp/config/env.js');
assert.match(env, /https:\/\/api\.txyundm\.cn/);
assert.doesNotMatch(env, /localhost|127\.0\.0\.1|http:\/\//);
const api = read('miniapp/utils/api.js');
assert.match(api, /\/auth\/wechat-login/);
assert.match(api, /authorization: `Bearer \$\{token\}`/);
const index = read('miniapp/pages/index/index.js');
assert.match(index, /\/stores\?\$\{query\}/);
assert.match(index, /openStore/);
const store = read('miniapp/pages/store/detail.js');
assert.match(store, /\/stores\/\$\{encodeURIComponent\(storeId\)\}/);
assert.match(store, /\/stores\/\$\{encodeURIComponent\(storeId\)\}\/rooms/);
assert.match(store, /\/stores\/\$\{encodeURIComponent\(this\.data\.storeId\)\}\/wifi/);
const room = read('miniapp/pages/room/detail.js');
for (const route of [
'/pricing/quote',
'/orders/reserve',
'/payments',
'/test-complete'
]) {
assert.match(room, new RegExp(route.replace('/', '\\/')));
}
const orders = read('miniapp/pages/orders/list.js')
+ read('miniapp/pages/orders/detail.js');
for (const route of [
'/orders?page=',
'/orders/${encodeURIComponent',
'/history',
'/cancellation-quote',
'/cancel'
]) {
assert.match(orders, new RegExp(route.replace(/[.*+?^${}()|[\]\\]/g, '\\$&')));
}
console.log('PASS: M08-A miniapp customer pages use fixed domain and real app-api calls.');