文件
shanghaipeiwan/server/tests/activity-list-content.spec.ts
xcbyy 16f6419cba refactor(data): 全面移除小程序写死的演示/兜底数据,测试数据统一落库
- 删除无引用的 common/mock.js;登录页与个人中心的演示账号改为 DB 配置 demo_accounts + /api/auth/demo-accounts、/api/auth/demo-login(签发真实 token)

- 移除订单/活动/大神/动态/推广/工作台/门票/充值/举报等页面的演示列表与假兜底;新增真实空态

- 修复伪造成功:活动调价、评价回复、核销、海报保存、图片上传失败、提现/核销固定 1001、随机开黑房号、随机即时匹配、假语音播放等

- 服务端移除 101/2006 合成用户与合成大神兜底、移除默认服务包虚构价格;演示账号清单可在后台关闭

- 111 套件/733 用例全绿;已部署 20261021_162041,demo-accounts/demo-login 实测通过
2026-10-21 16:21:10 +08:00

38 行
1.5 KiB
TypeScript

此文件含有模棱两可的 Unicode 字符

此文件含有可能会与其他字符混淆的 Unicode 字符。 如果您是想特意这样的,可以安全地忽略该警告。 使用 Escape 按钮显示他们。

// 已读取AGENTS.md
import * as fs from 'fs';
import * as path from 'path';
/**
* 活动大厅内容规范(第九十六批改写)
* 背景:演示用 mock.js 已删除,活动数据统一来自数据库(GET /api/activities)。
* 本套件改为校验:不再内置 mock、页面真实取数、无 Emoji、关键字段展示完整。
*/
describe('ActivityListContent(活动大厅真实数据与内容规范)', () => {
const root = path.resolve(__dirname, '../../');
const pagePath = path.join(root, 'pwuniapp', 'pages', 'activity', 'list.vue');
const page = fs.readFileSync(pagePath, 'utf-8');
const mockPath = path.join(root, 'pwuniapp', 'common', 'mock.js');
it('不得再内置活动 mock 数据', () => {
expect(fs.existsSync(mockPath)).toBe(false);
expect(page).not.toContain('ACTIVITIES_LIST');
expect(page).not.toContain("from '@/common/mock");
});
it('活动列表必须从服务端取数', () => {
expect(page).toContain('getActivities');
expect(page).toContain('activities.value = list');
});
it('活动卡片展示地点、开始时间与发起人字段', () => {
expect(page).toContain('location');
expect(page).toContain('startTime');
expect(page).toContain('creatorNickname');
});
it('页面严禁包含任何系统 Emoji 字符', () => {
const emojiRegex = /(?:\p{Extended_Pictographic}|\p{Emoji_Presentation}|[\u2600-\u27BF])/u;
expect(emojiRegex.test(page)).toBe(false);
});
});