文件
shanghaipeiwan/server/tests/admin-demo-data-cleanup.spec.ts
xcbyy f3ea26d161 feat(admin): 方案A—消息铃铛接真实待办聚合 + 清理空壳接口与空卡片
【消息铃铛(真实数据)】
- POST /api/message/list 改为待办聚合:待接单订单/待审核大神/待审核提现/待处理举报/待仲裁工单(复用 getDashboardTodos + 新增 pendingOrdersCount)
- POST /api/message/read 持久化已读:新表 admin_message_reads 记录"已读时的数量",待办数量增加会重新变未读
- 两个接口均加 requireAdmin(待办数量属运营数据,不再匿名可见)

【删除空壳/死接口(前端已无调用方)】
- /api/user/save-info、/api/chat/list、/api/user/my-team/list、/api/user/latest-activity、/api/user/my-project/list

【后台页面清理】
- 「用户与个人中心 → 管理员资料」移除 我的项目/最近动态/我的团队/站内通知 四张空卡(保留真实的管理员资料头部)
- 删除对应 4 个组件;api/user-center.ts 移除 queryMyProjectList/queryMyTeamList/queryLatestActivity/saveUserInfo;api/message.ts 移除 queryChatList

【验证】
- 新增 admin-todo-bell.spec.ts;更新 admin-demo-data-cleanup.spec.ts
- 全量 101 套件 / 690 用例全绿;冒烟 8/8(未登录50008、待办数量、已读、新增后重新未读)
- 后台 pnpm build 通过
2026-10-20 15:52:04 +08:00

39 行
1.4 KiB
TypeScript

// 已读取AGENTS.md
import * as fs from 'fs';
import * as path from 'path';
/**
* 第六十五批回归闸门:清理后台静态演示数据
*/
describe('第六十五批后台演示数据清理闸门', () => {
const rootDir = path.resolve(__dirname, '../../');
const indexCode = fs.readFileSync(path.join(rootDir, 'server/src/index.ts'), 'utf-8');
it('不再返回硬编码团队/动态/通知演示数据', () => {
expect(indexCode).not.toContain('同城活动运营组');
expect(indexCode).not.toContain('财务与结算中心');
expect(indexCode).not.toContain('完成了苏苏学姐的微信商户打款审核');
expect(indexCode).not.toContain('处理了工体纯KTV争议仲裁单');
expect(indexCode).not.toContain('可可奶芙、夜风沉醉');
expect(indexCode).not.toContain('MySQL 数据库就绪');
});
it('相关空壳接口已移除(后台不再展示演示卡片)', () => {
for (const marker of [
"app.all('/api/user/my-team/list'",
"app.all('/api/user/latest-activity'",
"app.all('/api/user/my-project/list'",
"app.all('/api/user/save-info'",
"app.all('/api/chat/list'",
]) {
expect(indexCode).not.toContain(marker);
}
});
it('消息中心改为真实待办聚合', () => {
expect(indexCode).toContain("app.post('/api/message/list'");
expect(indexCode).toContain('buildAdminTodoItems');
expect(indexCode).toContain('pending_orders');
});
});