## 发布内容 - 修复 Vim 右键粘贴多行文本时的自动缩进、注释续行和异常空行问题 - 改用 xterm.js 原生粘贴管线,仅在远端启用时发送 bracketed paste 控制序列 - 在服务器列表和连接状态栏加入 IPv4/IPv6 隐私掩码及完整地址快捷复制 - 完善键盘操作、焦点样式、复制失败反馈和共享 IP 校验逻辑 - 更新中英文 README、架构说明、贡献者信息及 CHANGELOG ## 验证 - `pnpm run verify` - 463 个单元与集成测试通过 - 19 个 Chromium E2E 与无障碍测试通过 - 前端生产构建及内联产物生成成功 --------- Co-authored-by: vonl1 <911959129@qq.com> Co-authored-by: Claude 4.7 <noreply@anthropic.com>
26 lines
1.1 KiB
TypeScript
26 lines
1.1 KiB
TypeScript
import { describe, expect, it } from 'vitest';
|
|
import { maskIPAddress } from '../frontend/src/host-display';
|
|
|
|
describe('maskIPAddress', () => {
|
|
it('masks valid IPv4 literals and rejects invalid ones', () => {
|
|
expect(maskIPAddress('192.168.1.25')).toBe('192.168.*.*');
|
|
expect(maskIPAddress('255.0.255.0')).toBe('255.0.*.*');
|
|
expect(maskIPAddress('999.168.1.25')).toBeNull();
|
|
expect(maskIPAddress('1.2.3')).toBeNull();
|
|
});
|
|
|
|
it('masks complete, compressed, bracketed, and scoped IPv6 literals', () => {
|
|
expect(maskIPAddress('2001:0db8:85a3:0000:0000:8a2e:0370:7334')).toBe('2001:db8:…');
|
|
expect(maskIPAddress('2001:db8::1')).toBe('2001:db8:…');
|
|
expect(maskIPAddress('[2001:db8::1]')).toBe('2001:db8:…');
|
|
expect(maskIPAddress('fe80::1%en0')).toBe('fe80:0:…');
|
|
expect(maskIPAddress('::ffff:192.0.2.128')).toBe('0:0:…');
|
|
});
|
|
|
|
it('does not mask hostnames or malformed IPv6 values', () => {
|
|
expect(maskIPAddress('server.example.com')).toBeNull();
|
|
expect(maskIPAddress('2001:db8:::1')).toBeNull();
|
|
expect(maskIPAddress('2001:db8:1:2:3:4:5:6:7')).toBeNull();
|
|
});
|
|
});
|