This commit is contained in:
73
frontend/__tests__/__harness__/mock-dom.ts
Normal file
73
frontend/__tests__/__harness__/mock-dom.ts
Normal file
@@ -0,0 +1,73 @@
|
||||
import { vi } from "vitest";
|
||||
import { ElementsWithUtils, ElementWithUtils } from "../../src/ts/utils/dom";
|
||||
|
||||
// Mock dom-utils to always return a mock element
|
||||
vi.mock("../../src/ts/utils/dom", async (importOriginal) => {
|
||||
const createMockElement = (): ElementWithUtils => {
|
||||
return {
|
||||
disable: vi.fn().mockReturnThis(),
|
||||
enable: vi.fn().mockReturnThis(),
|
||||
isDisabled: vi.fn().mockReturnValue(false),
|
||||
getAttribute: vi.fn(),
|
||||
hasAttribute: vi.fn().mockReturnValue(false),
|
||||
setAttribute: vi.fn().mockReturnThis(),
|
||||
removeAttribute: vi.fn().mockReturnThis(),
|
||||
isChecked: vi.fn().mockReturnValue(false),
|
||||
hide: vi.fn().mockReturnThis(),
|
||||
show: vi.fn().mockReturnThis(),
|
||||
addClass: vi.fn().mockReturnThis(),
|
||||
removeClass: vi.fn().mockReturnThis(),
|
||||
hasClass: vi.fn().mockReturnValue(false),
|
||||
toggleClass: vi.fn().mockReturnThis(),
|
||||
on: vi.fn().mockReturnThis(),
|
||||
onChild: vi.fn().mockReturnThis(),
|
||||
setHtml: vi.fn().mockReturnThis(),
|
||||
setText: vi.fn().mockReturnThis(),
|
||||
remove: vi.fn(),
|
||||
setStyle: vi.fn().mockReturnThis(),
|
||||
getStyle: vi.fn().mockReturnValue({}),
|
||||
isFocused: vi.fn().mockReturnValue(false),
|
||||
qs: vi.fn().mockImplementation(() => createMockElement()),
|
||||
qsr: vi.fn().mockImplementation(() => createMockElement()),
|
||||
qsa: vi.fn().mockImplementation(() => new ElementsWithUtils()),
|
||||
empty: vi.fn().mockReturnThis(),
|
||||
appendHtml: vi.fn().mockReturnThis(),
|
||||
append: vi.fn().mockReturnThis(),
|
||||
prependHtml: vi.fn().mockReturnThis(),
|
||||
dispatch: vi.fn().mockReturnThis(),
|
||||
offset: vi.fn().mockReturnValue({ top: 0, left: 0 }),
|
||||
wrapWith: vi.fn().mockImplementation(() => createMockElement()),
|
||||
setValue: vi.fn().mockReturnThis(),
|
||||
getValue: vi.fn().mockReturnValue(""),
|
||||
getParent: vi.fn().mockImplementation(() => createMockElement()),
|
||||
replaceWith: vi.fn().mockReturnThis(),
|
||||
getOffsetWidth: vi.fn().mockReturnValue(0),
|
||||
getOffsetHeight: vi.fn().mockReturnValue(0),
|
||||
getOffsetTop: vi.fn().mockReturnValue(0),
|
||||
getOffsetLeft: vi.fn().mockReturnValue(0),
|
||||
animate: vi.fn().mockResolvedValue(null),
|
||||
promiseAnimate: vi.fn().mockResolvedValue(null),
|
||||
slideUp: vi.fn().mockResolvedValue(null),
|
||||
slideDown: vi.fn().mockResolvedValue(null),
|
||||
native: document.createElement("div"),
|
||||
// @ts-expect-error - mocking private method
|
||||
hasValue: vi.fn().mockReturnValue(false),
|
||||
};
|
||||
};
|
||||
|
||||
const actual = await importOriginal();
|
||||
|
||||
return {
|
||||
//@ts-expect-error - mocking private method
|
||||
...actual,
|
||||
qsr: vi.fn().mockImplementation(() => createMockElement()),
|
||||
qs: vi.fn().mockImplementation(() => createMockElement()),
|
||||
qsa: vi.fn().mockImplementation(() => new ElementsWithUtils()),
|
||||
};
|
||||
});
|
||||
|
||||
// Mock document.querySelector to return a div
|
||||
// oxlint-disable-next-line no-deprecated
|
||||
global.document.querySelector = vi
|
||||
.fn()
|
||||
.mockReturnValue(document.createElement("div"));
|
||||
Reference in New Issue
Block a user