portainer/app/setup-tests/setup-codemirror.ts

43 lines
830 B
TypeScript

import 'vitest-dom/extend-expect';
// Mock Range APIs that CodeMirror needs but JSDOM doesn't provide
Range.prototype.getBoundingClientRect = () => ({
bottom: 0,
height: 0,
left: 0,
right: 0,
top: 0,
width: 0,
x: 0,
y: 0,
toJSON: vi.fn(),
});
Range.prototype.getClientRects = () => ({
item: () => null,
length: 0,
[Symbol.iterator]: vi.fn(),
});
// Mock createRange
document.createRange = () => {
const range = new Range();
range.getBoundingClientRect = vi.fn();
range.getClientRects = () => ({
item: () => null,
length: 0,
[Symbol.iterator]: vi.fn(),
});
return range;
};
// Mock selection APIs
const mockSelection = {
rangeCount: 0,
addRange: vi.fn(),
getRangeAt: vi.fn(),
removeAllRanges: vi.fn(),
};
window.getSelection = () => mockSelection as unknown as Selection;