// 已读取AGENTS.md import * as fs from 'fs'; import * as path from 'path'; /** * 第八十四批:剩余页面主题补全 + 管理后台模板 demo 清理。 */ describe('第八十四批主题补全与后台清理闸门', () => { const root = path.resolve(__dirname, '../../'); const read = (p: string) => fs.readFileSync(path.join(root, p), 'utf-8'); const exists = (p: string) => fs.existsSync(path.join(root, p)); const admin = 'admin/arco-design-pro-vite/src'; it('大神工作台/我的门票接入主题(根节点主题类 + 颜色变量)', () => { const ws = read('pwuniapp/pages/expert/workspace.vue'); const mt = read('pwuniapp/pages/activity/my-ticket.vue'); expect(ws).toContain("'theme-' + currentThemeKey"); expect(ws).toContain('var(--bg-primary)'); expect(ws).toContain('var(--bg-surface)'); expect(ws).toContain('var(--text-primary)'); expect(ws).toContain('var(--border-subtle)'); expect(mt).toContain("'theme-' + currentThemeKey"); expect(mt).toContain('var(--bg-primary)'); expect(mt).toContain('var(--color-brand'); // 条码/二维码必须保持黑白(可扫描),不做主题化 expect(mt).toContain('background-color: #0F172A;'); expect(mt).toContain('background-color: #FFFFFF;'); }); it('后台模板 demo 路由模块与视图已删除', () => { for (const f of ['form.ts', 'list.ts', 'profile.ts', 'result.ts', 'visualization.ts']) { expect(exists(`${admin}/router/routes/modules/${f}`)).toBe(false); } for (const d of ['views/form', 'views/list', 'views/profile', 'views/result', 'views/visualization', 'views/dashboard/monitor', 'mock']) { expect(exists(`${admin}/${d}`)).toBe(false); } for (const f of ['api/form.ts', 'api/list.ts', 'api/profile.ts', 'api/visualization.ts', 'api/dashboard.ts']) { expect(exists(`${admin}/${f}`)).toBe(false); } // 真实业务模块仍在 for (const f of ['activity.ts', 'banner.ts', 'community.ts', 'companion.ts', 'dashboard.ts', 'finance.ts', 'order.ts', 'safety.ts', 'user.ts']) { expect(exists(`${admin}/router/routes/modules/${f}`)).toBe(true); } }); it('可见工作台不再引用失效图表/假活动数据组件,且不再加载 mock', () => { const workplace = read(`${admin}/views/dashboard/workplace/index.vue`); expect(workplace).not.toContain('ContentChart'); expect(workplace).not.toContain('PopularContent'); expect(read(`${admin}/main.ts`)).not.toContain("import './mock'"); }); });