mirror of
https://github.com/carbon-design-system/carbon-components-svelte.git
synced 2025-09-14 18:01:06 +00:00
83 lines
2 KiB
TypeScript
83 lines
2 KiB
TypeScript
/// <reference types="vitest/globals" />
|
|
import "@testing-library/jest-dom/vitest";
|
|
import { userEvent } from "@testing-library/user-event";
|
|
|
|
// Mock scrollIntoView since it's not implemented in JSDOM
|
|
Element.prototype.scrollIntoView = vi.fn();
|
|
|
|
// Mock ResizeObserver since it's not implemented in JSDOM
|
|
class ResizeObserverMock {
|
|
callback: ResizeObserverCallback;
|
|
elements: Element[];
|
|
|
|
constructor(callback: ResizeObserverCallback) {
|
|
this.callback = callback;
|
|
this.elements = [];
|
|
}
|
|
|
|
observe(element: Element) {
|
|
this.elements.push(element);
|
|
this.callback(
|
|
[
|
|
{
|
|
target: element,
|
|
contentRect: { height: 100 } as DOMRectReadOnly,
|
|
borderBoxSize: [],
|
|
contentBoxSize: [],
|
|
devicePixelContentBoxSize: [],
|
|
},
|
|
],
|
|
this,
|
|
);
|
|
}
|
|
|
|
unobserve(element: Element) {
|
|
this.elements = this.elements.filter((el) => el !== element);
|
|
}
|
|
|
|
disconnect() {
|
|
this.elements = [];
|
|
}
|
|
}
|
|
|
|
global.ResizeObserver = ResizeObserverMock;
|
|
|
|
export const user = userEvent.setup();
|
|
|
|
export const setupLocalStorageMock = () => {
|
|
let localStorageMock: { [key: string]: string } = {};
|
|
let originalLocalStorage: Storage;
|
|
|
|
beforeEach(() => {
|
|
originalLocalStorage = global.localStorage;
|
|
localStorageMock = {};
|
|
global.localStorage = {
|
|
getItem: vi.fn((key) => localStorageMock[key] || null),
|
|
setItem: vi.fn((key, value) => {
|
|
localStorageMock[key] = value;
|
|
}),
|
|
removeItem: vi.fn((key) => {
|
|
delete localStorageMock[key];
|
|
}),
|
|
clear: vi.fn(() => {
|
|
localStorageMock = {};
|
|
}),
|
|
length: 0,
|
|
key: vi.fn(),
|
|
};
|
|
});
|
|
|
|
afterEach(() => {
|
|
global.localStorage = originalLocalStorage;
|
|
localStorage.clear();
|
|
vi.restoreAllMocks();
|
|
localStorageMock = {};
|
|
});
|
|
|
|
return {
|
|
setMockItem: (key: string, value: string) => {
|
|
localStorageMock[key] = value;
|
|
},
|
|
getMockItem: (key: string) => localStorageMock[key],
|
|
};
|
|
};
|