feat: improve operations diagnostics and channel management
This commit is contained in:
@@ -11,7 +11,6 @@ describe('drainage content detection', () => {
|
||||
['裸域名', '访问 t.cn/a1 查看详情', 'url'],
|
||||
['IP 链接', '入口 192.168.1.10:8080/path。', 'url'],
|
||||
['中文句号拆分域名', '请访问 example。com 领取', 'url'],
|
||||
['空格拆分域名', '请访问 ex ample . com 领取', 'url'],
|
||||
['+86 和空格手机号', '电话 +86 138 0013 8000', 'mobile'],
|
||||
['短横线手机号', '电话 138-0013-8000', 'mobile'],
|
||||
['括号区号和分机', '致电(010)8888-8888 转 123', 'landline'],
|
||||
@@ -26,6 +25,23 @@ describe('drainage content detection', () => {
|
||||
expect(detectDrainageContentWithRules('邮箱 13800138000 @ example . com', rules).hasDrainageContent).toBe(false);
|
||||
});
|
||||
|
||||
it.each([' ', '\t', '\n', '\u3000'])('stops a URL match at whitespace %p', (separator) => {
|
||||
const url = 'https://example.com/path';
|
||||
const suffix = '后续字符不属于链接';
|
||||
const content = `详情 ${url}${separator}${suffix}`;
|
||||
const result = detectDrainageContentWithRules(content, rules);
|
||||
const urlMatches = (result.drainageDetection as { matches: Array<{ category: string; text: string; normalizedText: string }> })
|
||||
.matches.filter((item) => item.category === 'url');
|
||||
|
||||
expect(urlMatches).toHaveLength(1);
|
||||
expect(urlMatches[0]).toMatchObject({ text: url, normalizedText: url });
|
||||
});
|
||||
|
||||
it('does not join a domain split by spaces into one URL', () => {
|
||||
const result = detectDrainageContentWithRules('请访问 ex ample . com 领取', rules);
|
||||
expect(result.hasDrainageContent).toBe(false);
|
||||
});
|
||||
|
||||
it('keeps original offsets for record-page highlighting', () => {
|
||||
const content = '📨详情请看 example。com/path,谢谢';
|
||||
const result = detectDrainageContentWithRules(content, rules);
|
||||
|
||||
Reference in New Issue
Block a user