Files
lingniu-vehicle-ingest/vehicle-data-platform/apps/web/src/test/setup.ts
2026-07-04 10:59:47 +08:00

103 lines
2.4 KiB
TypeScript

import '@testing-library/jest-dom/vitest';
Object.defineProperty(HTMLCanvasElement.prototype, 'getContext', {
value: () => ({
fillStyle: '',
fillRect: () => undefined,
clearRect: () => undefined,
getImageData: () => ({ data: new Uint8ClampedArray(4) }),
putImageData: () => undefined,
createImageData: () => ({ data: new Uint8ClampedArray(4) }),
setTransform: () => undefined,
drawImage: () => undefined,
save: () => undefined,
fillText: () => undefined,
restore: () => undefined,
beginPath: () => undefined,
moveTo: () => undefined,
lineTo: () => undefined,
closePath: () => undefined,
stroke: () => undefined,
translate: () => undefined,
scale: () => undefined,
rotate: () => undefined,
arc: () => undefined,
fill: () => undefined,
measureText: () => ({ width: 0 }),
transform: () => undefined,
rect: () => undefined,
clip: () => undefined
})
});
class TestResizeObserver {
observe() {
return undefined;
}
unobserve() {
return undefined;
}
disconnect() {
return undefined;
}
}
Object.defineProperty(window, 'ResizeObserver', { value: TestResizeObserver });
Object.defineProperty(globalThis, 'ResizeObserver', { value: TestResizeObserver });
Object.defineProperty(navigator, 'clipboard', {
configurable: true,
value: {
writeText: () => Promise.resolve()
}
});
Object.defineProperty(window, 'matchMedia', {
value: (query: string) => ({
matches: false,
media: query,
onchange: null,
addListener: () => undefined,
removeListener: () => undefined,
addEventListener: () => undefined,
removeEventListener: () => undefined,
dispatchEvent: () => false
})
});
Object.defineProperty(URL, 'createObjectURL', {
configurable: true,
value: () => 'blob:test'
});
Object.defineProperty(URL, 'revokeObjectURL', {
configurable: true,
value: () => undefined
});
document.createRange = () => ({
setStart: () => undefined,
setEnd: () => undefined,
selectNodeContents: () => undefined,
detach: () => undefined,
commonAncestorContainer: document.body,
getBoundingClientRect: () => ({
bottom: 0,
height: 0,
left: 0,
right: 0,
top: 0,
width: 0,
x: 0,
y: 0,
toJSON: () => undefined
}),
getClientRects: () => ({
length: 0,
item: () => null,
[Symbol.iterator]: function* iterator() {
return undefined;
}
})
} as unknown as Range);