v2.0.0-preview.2 - 增加单元和UI测试用例
This commit is contained in:
@@ -0,0 +1,82 @@
|
||||
import { vi } from 'vitest'
|
||||
|
||||
// 设置全局测试超时时间
|
||||
vi.setConfig({ testTimeout: 10000 })
|
||||
|
||||
// Mock window.matchMedia (用于响应式测试)
|
||||
Object.defineProperty(window, 'matchMedia', {
|
||||
writable: true,
|
||||
value: vi.fn().mockImplementation((query) => ({
|
||||
matches: false,
|
||||
media: query,
|
||||
onchange: null,
|
||||
addListener: vi.fn(),
|
||||
removeListener: vi.fn(),
|
||||
addEventListener: vi.fn(),
|
||||
removeEventListener: vi.fn(),
|
||||
dispatchEvent: vi.fn(),
|
||||
})),
|
||||
})
|
||||
|
||||
// Mock IntersectionObserver (用于虚拟滚动测试)
|
||||
global.IntersectionObserver = class IntersectionObserver {
|
||||
constructor() {}
|
||||
disconnect() {}
|
||||
observe() {}
|
||||
takeRecords() {
|
||||
return []
|
||||
}
|
||||
unobserve() {}
|
||||
} as any
|
||||
|
||||
// Mock ResizeObserver (用于尺寸变化测试)
|
||||
global.ResizeObserver = class ResizeObserver {
|
||||
constructor() {}
|
||||
disconnect() {}
|
||||
observe() {}
|
||||
unobserve() {}
|
||||
} as any
|
||||
|
||||
// Mock requestAnimationFrame
|
||||
global.requestAnimationFrame = (callback: FrameRequestCallback) => {
|
||||
return setTimeout(callback, 0) as unknown as number
|
||||
}
|
||||
|
||||
global.cancelAnimationFrame = (id: number) => {
|
||||
clearTimeout(id)
|
||||
}
|
||||
|
||||
// Mock HTMLCanvasElement (用于 html2canvas/jspdf 测试)
|
||||
if (!HTMLCanvasElement.prototype.getContext) {
|
||||
HTMLCanvasElement.prototype.getContext = vi.fn(() => ({
|
||||
fillRect: vi.fn(),
|
||||
clearRect: vi.fn(),
|
||||
getImageData: vi.fn(),
|
||||
putImageData: vi.fn(),
|
||||
createImageData: vi.fn(),
|
||||
setTransform: vi.fn(),
|
||||
drawImage: vi.fn(),
|
||||
save: vi.fn(),
|
||||
fillText: vi.fn(),
|
||||
restore: vi.fn(),
|
||||
beginPath: vi.fn(),
|
||||
moveTo: vi.fn(),
|
||||
lineTo: vi.fn(),
|
||||
closePath: vi.fn(),
|
||||
stroke: vi.fn(),
|
||||
translate: vi.fn(),
|
||||
scale: vi.fn(),
|
||||
rotate: vi.fn(),
|
||||
arc: vi.fn(),
|
||||
fill: vi.fn(),
|
||||
measureText: vi.fn(() => ({ width: 0 })),
|
||||
transform: vi.fn(),
|
||||
rect: vi.fn(),
|
||||
clip: vi.fn(),
|
||||
})) as any
|
||||
}
|
||||
|
||||
// Mock HTMLCanvasElement.toDataURL
|
||||
if (!HTMLCanvasElement.prototype.toDataURL) {
|
||||
HTMLCanvasElement.prototype.toDataURL = vi.fn(() => 'data:image/png;base64,')
|
||||
}
|
||||
Reference in New Issue
Block a user