diff --git a/miniprogram/package.json b/miniprogram/package.json index ac23f76..76c631f 100644 --- a/miniprogram/package.json +++ b/miniprogram/package.json @@ -9,7 +9,9 @@ "dev:h5": "uni", "build:h5": "uni build", "verify:tabbar": "node scripts/verify-venue-tabbar.mjs", - "verify:startup": "node scripts/verify-venue-startup.mjs" + "verify:startup": "node scripts/verify-venue-startup.mjs", + "verify:home-switch": "node scripts/verify-home-venue-switch.mjs", + "verify:comprehensive-auth": "node scripts/verify-comprehensive-auth-state.mjs" }, "dependencies": { "@dcloudio/uni-app": "3.0.0-alpha-5000120260211001", diff --git a/miniprogram/scripts/verify-comprehensive-auth-state.mjs b/miniprogram/scripts/verify-comprehensive-auth-state.mjs new file mode 100644 index 0000000..ff40bab --- /dev/null +++ b/miniprogram/scripts/verify-comprehensive-auth-state.mjs @@ -0,0 +1,41 @@ +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 pages = [ + 'pages/comprehensive/bookings/index.vue', + 'pages/comprehensive/profile/index.vue' +] + +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}`) +} + +for (const page of pages) { + const content = readFileSync(resolve(srcRoot, page), 'utf8') + expectIncludes(content, 'v-if="!session.isLoggedIn"', `${page} unauth condition`) + expectIncludes(content, ' readFileSync(resolve(srcRoot, relativePath), 'utf8') +const expectFile = (relativePath) => { + const fullPath = resolve(srcRoot, relativePath) + if (!existsSync(fullPath)) failures.push(`Missing file: ${relativePath}`) +} +const expectIncludes = (content, expected, label) => { + if (!content.includes(expected)) failures.push(`${label} is missing: ${expected}`) +} + +expectFile('components/VenueSwitchHeader.vue') + +if (existsSync(resolve(srcRoot, 'components/VenueSwitchHeader.vue'))) { + const component = read('components/VenueSwitchHeader.vue') + expectIncludes(component, "uni.navigateTo({ url: '/pages/venue-select/index?mode=switch' })", 'VenueSwitchHeader switch navigation') + expectIncludes(component, 'class="venue-switch-header"', 'VenueSwitchHeader layout root') + expectIncludes(component, 'class="venue-switch-action"', 'VenueSwitchHeader action') + expectIncludes(component, '切换场馆', 'VenueSwitchHeader action text') + expectIncludes(component, '', 'VenueSwitchHeader css arrow') +} + +const homePages = [ + { file: 'pages/ice/home/index.vue', venue: '冰场馆' }, + { file: 'pages/comprehensive/home/index.vue', venue: '综合场馆' } +] + +for (const { file, venue } of homePages) { + const content = read(file) + expectIncludes(content, ' + + + 当前场馆 + {{ venueName }} + + + 切换场馆 + + + + + + + + diff --git a/miniprogram/src/pages/comprehensive/bookings/index.vue b/miniprogram/src/pages/comprehensive/bookings/index.vue index 93ffb2e..ff57b5b 100644 --- a/miniprogram/src/pages/comprehensive/bookings/index.vue +++ b/miniprogram/src/pages/comprehensive/bookings/index.vue @@ -1,10 +1,12 @@