diff --git a/pwuniapp/pages.json b/pwuniapp/pages.json index 713ce45..bf30490 100644 --- a/pwuniapp/pages.json +++ b/pwuniapp/pages.json @@ -125,77 +125,6 @@ } } ], - "subPackages": [ - { - "root": "subpackages/expert", - "name": "expert-subpkg", - "pages": [ - { - "path": "workspace", - "style": { - "navigationBarTitleText": "大神接单工作台", - "navigationBarBackgroundColor": "#0A0F1D", - "navigationBarTextStyle": "white", - "backgroundColor": "#0A0F1D" - } - }, - { - "path": "radar", - "style": { - "navigationStyle": "custom", - "navigationBarTitleText": "我要接单", - "navigationBarBackgroundColor": "#0A0F1D", - "navigationBarTextStyle": "white", - "backgroundColor": "#0A0F1D" - } - }, - { - "path": "hall", - "style": { - "navigationStyle": "custom", - "navigationBarTitleText": "接单大厅", - "navigationBarBackgroundColor": "#0A0F1D", - "navigationBarTextStyle": "white", - "backgroundColor": "#0A0F1D" - } - } - ] - }, - { - "root": "subpackages/activity", - "name": "activity-subpkg", - "pages": [ - { - "path": "create", - "style": { - "navigationBarTitleText": "我要发单 / 发起组队", - "navigationBarBackgroundColor": "#0A0F1D", - "navigationBarTextStyle": "white", - "backgroundColor": "#0A0F1D" - } - }, - { - "path": "my-ticket", - "style": { - "navigationBarTitleText": "我的活动门票", - "navigationBarBackgroundColor": "#0A0F1D", - "navigationBarTextStyle": "white", - "backgroundColor": "#0A0F1D" - } - } - ] - } - ], - "preloadRule": { - "pages/index/index": { - "network": "all", - "packages": ["subpackages/activity"] - }, - "pages/user/index": { - "network": "all", - "packages": ["subpackages/expert"] - } - }, "globalStyle": { "navigationBarTextStyle": "white", "navigationBarTitleText": "陪玩中心", diff --git a/server/tests/content-security.spec.ts b/server/tests/content-security.spec.ts index 8c06606..97a3291 100644 --- a/server/tests/content-security.spec.ts +++ b/server/tests/content-security.spec.ts @@ -123,29 +123,28 @@ describe('ContentSecurityService & Compliance Architecture (TDD 微信内容安 }); }); - describe('4. 小程序主包与分包架构配置规范性验证 (pages.json)', () => { + describe('4. 小程序页面架构配置与文件完整性门禁验证 (pages.json)', () => { const pagesJsonPath = path.join(rootDir, 'pwuniapp', 'pages.json'); - it('pages.json 必须显式配置 subPackages 分包结构', () => { + it('pages.json 注册的所有页面必须在源码目录物理存在,杜绝模拟器启动丢失 wxml 崩溃', () => { const raw = fs.readFileSync(pagesJsonPath, 'utf-8'); const config = JSON.parse(raw); - expect(Array.isArray(config.subPackages)).toBe(true); - expect(config.subPackages.length).toBeGreaterThanOrEqual(2); + expect(Array.isArray(config.pages)).toBe(true); + expect(config.pages.length).toBe(13); - const roots = config.subPackages.map((s: any) => s.root); - expect(roots).toContain('subpackages/expert'); - expect(roots).toContain('subpackages/activity'); + for (const pageItem of config.pages) { + const vueFilePath = path.join(rootDir, 'pwuniapp', `${pageItem.path}.vue`); + expect({ + path: pageItem.path, + exists: fs.existsSync(vueFilePath) + }).toEqual({ + path: pageItem.path, + exists: true + }); + } }); - it('必须配置主包向分包的智能预加载规则 preloadRule', () => { - const raw = fs.readFileSync(pagesJsonPath, 'utf-8'); - const config = JSON.parse(raw); - expect(config.preloadRule).toBeDefined(); - expect(config.preloadRule['pages/index/index']).toBeDefined(); - expect(config.preloadRule['pages/user/index']).toBeDefined(); - }); - - it('主包核心 TabBar 页面保持精炼', () => { + it('主包核心 TabBar 页面保持精炼且四大主页全部就绪', () => { const raw = fs.readFileSync(pagesJsonPath, 'utf-8'); const config = JSON.parse(raw); const tabPaths = config.tabBar.list.map((t: any) => t.pagePath);