71 lines
1.9 KiB
JavaScript
71 lines
1.9 KiB
JavaScript
import assert from 'node:assert/strict'
|
|||
|
|
import { existsSync, readFileSync } from 'node:fs'
|
||
|
|
import { resolve } from 'node:path'
|
||
|
|
|
||
|
|
const root = resolve(import.meta.dirname, '..')
|
||
|
|
const read = (path) => readFileSync(resolve(root, path), 'utf8')
|
||
|
|
const app = JSON.parse(read('miniapp/app.json'))
|
||
|
|
const corePages = [
|
||
|
|
'index',
|
||
|
|
'discover',
|
||
|
|
'messages',
|
||
|
|
'activity',
|
||
|
|
'mine',
|
||
|
|
'matchmaker',
|
||
|
|
'counseling-intro',
|
||
|
|
'premarital-intro',
|
||
|
|
'content',
|
||
|
|
'anti-fraud',
|
||
|
|
'service-station',
|
||
|
|
]
|
||
|
|
const quickEntryCodes = [
|
||
|
|
'find_object',
|
||
|
|
'matchmaker',
|
||
|
|
'activities',
|
||
|
|
'counseling',
|
||
|
|
'classroom',
|
||
|
|
'premarital',
|
||
|
|
'anti_fraud',
|
||
|
|
'service_station',
|
||
|
|
]
|
||
|
|
|
||
|
|
assert.deepEqual(
|
||
|
|
app.tabBar.list.map((item) => item.text),
|
||
|
|
['首页', '找对象', '消息', '活动', '我的'],
|
||
|
|
'五个 Tab 的顺序发生偏移',
|
||
|
|
)
|
||
|
|
|
||
|
|
for (const page of corePages) {
|
||
|
|
const base = `miniapp/pages/${page}/${page}`
|
||
|
|
for (const extension of ['.json', '.wxml', '.wxss']) {
|
||
|
|
assert.ok(existsSync(resolve(root, base + extension)), `${page}${extension} 不存在`)
|
||
|
|
}
|
||
|
|
const template = read(base + '.wxml')
|
||
|
|
assert.match(template, /reference-page/, `${page} 未接入参考图页面骨架`)
|
||
|
|
assert.doesNotMatch(template, /[\u{1F300}-\u{1FAFF}]/u, `${page} 含 Emoji`)
|
||
|
|
}
|
||
|
|
|
||
|
|
const homeLogic = read('miniapp/pages/index/index.ts')
|
||
|
|
let previousIndex = -1
|
||
|
|
for (const code of quickEntryCodes) {
|
||
|
|
const index = homeLogic.indexOf(code)
|
||
|
|
assert.ok(index >= 0, `首页缺少入口 ${code}`)
|
||
|
|
assert.ok(index > previousIndex, `首页入口 ${code} 顺序错误`)
|
||
|
|
previousIndex = index
|
||
|
|
}
|
||
|
|
|
||
|
|
const theme = read('miniapp/app.wxss')
|
||
|
|
for (const token of [
|
||
|
|
'--mini-night-start',
|
||
|
|
'--mini-night-end',
|
||
|
|
'--mini-accent-pink',
|
||
|
|
'--mini-accent-coral',
|
||
|
|
'--mini-card-bg',
|
||
|
|
'--mini-card-radius',
|
||
|
|
'--mini-shadow',
|
||
|
|
]) {
|
||
|
|
assert.ok(theme.includes(token), `缺少全局 Token ${token}`)
|
||
|
|
}
|
||
|
|
|
||
|
|
console.log('Miniapp reference contracts passed')
|