feat(config): implement dynamic security blocklist and home marketing popup with admin controls
这个提交包含在:
@@ -156,4 +156,34 @@ describe('ContentSecurityService & Compliance Architecture (TDD 微信内容安
|
||||
]);
|
||||
});
|
||||
});
|
||||
|
||||
describe('5. 动态自定义引流违规词库与首页运营全局弹窗组件规范验证', () => {
|
||||
it('支持动态加载自定义违规引流词并即时热拦截', () => {
|
||||
secService.setCustomKeywords(['私下走微信', '线下给现金', '联系方式v']);
|
||||
expect(secService.getCustomKeywords()).toEqual(['私下走微信', '线下给现金', '联系方式v']);
|
||||
|
||||
const blocked1 = secService.checkText('加个好友,我们私下走微信吧');
|
||||
expect(blocked1.pass).toBe(false);
|
||||
expect(blocked1.code).toBe(87014);
|
||||
expect(blocked1.message).toContain('私下走微信');
|
||||
|
||||
const blocked2 = secService.checkText('活动到了现场线下给现金可以吗');
|
||||
expect(blocked2.pass).toBe(false);
|
||||
expect(blocked2.code).toBe(87014);
|
||||
expect(blocked2.message).toContain('线下给现金');
|
||||
|
||||
const passText = secService.checkText('今晚一起去望京合生麒麟社玩桌游');
|
||||
expect(passText.pass).toBe(true);
|
||||
});
|
||||
|
||||
it('首页必须挂载 HomePopupModal 全局运营浮层弹窗组件', () => {
|
||||
const homePopupPath = path.join(rootDir, 'pwuniapp', 'components', 'HomePopupModal.vue');
|
||||
expect(fs.existsSync(homePopupPath)).toBe(true);
|
||||
|
||||
const indexContent = fs.readFileSync(path.join(rootDir, 'pwuniapp', 'pages', 'index', 'index.vue'), 'utf-8');
|
||||
expect(indexContent).toContain('home-popup-modal');
|
||||
expect(indexContent).toContain('HomePopupModal');
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
在新工单中引用
屏蔽一个用户