feat(image): 新建knowai-ui:1.0.0镜像并完成推送
- 最终完成16个组件的搭建,覆盖常用组件和布局 - 通过tsc eslint完成测试,vitest测试因未知问题放弃(但保留测试文件) BREAKING CHANGE: 新镜像分支
This commit is contained in:
87
test/setup.ts
Normal file
87
test/setup.ts
Normal file
@@ -0,0 +1,87 @@
|
||||
/**
|
||||
* KnowAI UI组件库测试设置文件
|
||||
* 配置全局测试环境和共享设置
|
||||
*/
|
||||
|
||||
import { vi } from 'vitest';
|
||||
import { config } from '@vue/test-utils';
|
||||
// 导入Element Plus的ElIcon组件,用于Icon组件测试
|
||||
import { ElIcon } from 'element-plus';
|
||||
|
||||
// 配置Vue测试工具
|
||||
config.global.components = {
|
||||
ElIcon // 全局注册ElIcon组件
|
||||
};
|
||||
|
||||
config.global.stubs = {
|
||||
// 全局组件存根配置
|
||||
};
|
||||
|
||||
// 模拟浏览器API
|
||||
Object.defineProperty(window, 'localStorage', {
|
||||
value: {
|
||||
getItem: vi.fn(),
|
||||
setItem: vi.fn(),
|
||||
removeItem: vi.fn(),
|
||||
clear: vi.fn()
|
||||
},
|
||||
writable: true
|
||||
});
|
||||
|
||||
Object.defineProperty(window, 'sessionStorage', {
|
||||
value: {
|
||||
getItem: vi.fn(),
|
||||
setItem: vi.fn(),
|
||||
removeItem: vi.fn(),
|
||||
clear: vi.fn()
|
||||
},
|
||||
writable: true
|
||||
});
|
||||
|
||||
// 模拟IntersectionObserver
|
||||
globalThis.IntersectionObserver = vi.fn().mockImplementation(() => ({
|
||||
observe: vi.fn(),
|
||||
unobserve: vi.fn(),
|
||||
disconnect: vi.fn()
|
||||
}));
|
||||
|
||||
// 模拟ResizeObserver
|
||||
globalThis.ResizeObserver = vi.fn().mockImplementation(() => ({
|
||||
observe: vi.fn(),
|
||||
unobserve: vi.fn(),
|
||||
disconnect: vi.fn()
|
||||
}));
|
||||
|
||||
// 模拟requestAnimationFrame
|
||||
globalThis.requestAnimationFrame = vi.fn((cb: FrameRequestCallback) => setTimeout(cb, 0));
|
||||
|
||||
// 模拟cancelAnimationFrame
|
||||
globalThis.cancelAnimationFrame = vi.fn((id: number) => clearTimeout(id));
|
||||
|
||||
// 为fetch提供一个基本的模拟实现,避免birpc超时
|
||||
globalThis.fetch = vi.fn().mockResolvedValue({
|
||||
ok: true,
|
||||
status: 200,
|
||||
json: vi.fn().mockResolvedValue({}),
|
||||
text: vi.fn().mockResolvedValue('')
|
||||
});
|
||||
|
||||
// 模拟document相关API
|
||||
Object.defineProperty(document, 'visibilityState', {
|
||||
value: 'visible',
|
||||
writable: true
|
||||
});
|
||||
|
||||
document.onvisibilitychange = vi.fn();
|
||||
|
||||
// 设置环境变量
|
||||
(globalThis as any).process = (globalThis as any).process || {};
|
||||
(globalThis as any).process.env = (globalThis as any).process.env || {};
|
||||
(globalThis as any).process.env.NODE_ENV = 'test';
|
||||
|
||||
// 禁用控制台警告和错误,避免测试输出过于嘈杂
|
||||
vi.spyOn(console, 'warn').mockImplementation(() => {});
|
||||
vi.spyOn(console, 'error').mockImplementation(() => {});
|
||||
|
||||
// 注释掉定时器控制,避免影响Vitest内部异步操作
|
||||
// vi.useFakeTimers();
|
||||
Reference in New Issue
Block a user