mirror of
https://gitee.com/newgateway/vtj.git
synced 2026-06-23 19:53:25 +08:00
- 为加密工具(MD5、RSA、base64、AES)添加完整加解密测试,支持中文及空字符串 - 新增日期格式化工具 dateFormat 的多种格式及类型测试 - lodash 工具函数增加类型判断、字符串转换、对象操作、深拷贝和合并等测试覆盖 - 添加 lz-string 压缩解压工具的多场景测试,含中文和特殊字符 - mitt 事件总线工具新增事件监听、触发、取消、多次触发及通配符测试 - 优化数字格式化工具 numberFormat 和 toFixed 的边界及四舍五入测试 - 添加 path-to-regexp 路径匹配及参数捕获相关测试 - Queue 队列工具新增任务顺序执行、去重、缓存及结果查询的全覆盖测试 - 增补正则校验工具(URL、邮箱、身份证、手机号、车牌)及正则常量匹配测试 - utils 包中基础工具 uid 生成唯一 ID 及版本号的测试补充 - 新增 browser-patch 中 addEventListener 补丁覆盖及调用测试 - clientInfo 工具丰富各主流浏览器、操作系统及移动设备的检测测试覆盖 - cookie 工具新增增删改查测试及多 cookie 互不影响的保证 - download 工具中 URL 下载及 Blob 下载功能测试初始化补充保证运行环境兼容性
60 lines
1.6 KiB
TypeScript
60 lines
1.6 KiB
TypeScript
import { describe, it, expect, vi } from 'vitest';
|
|
import { loadScript } from '../src';
|
|
|
|
vi.mock('load-script', () => {
|
|
const mockFn = (
|
|
src: string,
|
|
opts: any,
|
|
cb: (err: Error | null, script?: HTMLScriptElement) => void
|
|
) => {
|
|
cb(null, document.createElement('script'));
|
|
};
|
|
return { default: vi.fn(mockFn) };
|
|
});
|
|
|
|
describe('loadScript 工具', () => {
|
|
it('应成功加载脚本', async () => {
|
|
const result = await loadScript('https://example.com/test.js');
|
|
expect(result).toBeUndefined();
|
|
});
|
|
|
|
it('应支持 library 参数返回全局变量', async () => {
|
|
(window as any).MyLib = { version: '1.0' };
|
|
const result = await loadScript('https://example.com/lib.js', {
|
|
library: 'MyLib'
|
|
});
|
|
expect(result).toEqual({ version: '1.0' });
|
|
});
|
|
|
|
it('应处理加载失败', async () => {
|
|
const loadModule = await import('load-script');
|
|
(loadModule.default as any).mockImplementationOnce(
|
|
(src: string, opts: any, cb: (err: Error | null) => void) => {
|
|
cb(new Error('load failed'));
|
|
}
|
|
);
|
|
|
|
await expect(loadScript('https://example.com/fail.js')).rejects.toThrow(
|
|
'load failed'
|
|
);
|
|
});
|
|
|
|
it('应支持 async 选项', async () => {
|
|
const loadModule = await import('load-script');
|
|
(loadModule.default as any).mockImplementationOnce(
|
|
(
|
|
src: string,
|
|
opts: any,
|
|
cb: (err: Error | null, script?: HTMLScriptElement) => void
|
|
) => {
|
|
cb(null, document.createElement('script'));
|
|
}
|
|
);
|
|
|
|
const result = await loadScript('https://example.com/async.js', {
|
|
async: true
|
|
});
|
|
expect(result).toBeUndefined();
|
|
});
|
|
});
|