Skip to content

Commit 9a9b6d7

Browse files
authored
refactor: mock ElementWithUtils (@fehmer) (monkeytypegame#7224)
1 parent 92533e2 commit 9a9b6d7

File tree

1 file changed

+44
-24
lines changed

1 file changed

+44
-24
lines changed

frontend/__tests__/setup-tests.ts

Lines changed: 44 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
import { vi } from "vitest";
22
import $ from "jquery";
3+
import { ElementWithUtils } from "../src/ts/utils/dom";
4+
35
//@ts-expect-error add to globl
46
global["$"] = $;
57
//@ts-expect-error add to globl
@@ -19,33 +21,51 @@ vi.mock("../src/ts/firebase", () => ({
1921
}));
2022

2123
vi.mock("../src/ts/utils/dom", () => {
22-
const createMockElement = (): any => {
23-
const mock = {
24-
qsr: vi.fn(),
24+
const createMockElement = (): ElementWithUtils => {
25+
return {
26+
disable: vi.fn().mockReturnThis(),
27+
enable: vi.fn().mockReturnThis(),
28+
isDisabled: vi.fn().mockReturnValue(false),
29+
getAttribute: vi.fn(),
30+
hasAttribute: vi.fn().mockReturnValue(false),
31+
setAttribute: vi.fn().mockReturnThis(),
32+
removeAttribute: vi.fn().mockReturnThis(),
33+
isChecked: vi.fn().mockReturnValue(false),
34+
hide: vi.fn().mockReturnThis(),
35+
show: vi.fn().mockReturnThis(),
36+
addClass: vi.fn().mockReturnThis(),
37+
removeClass: vi.fn().mockReturnThis(),
38+
hasClass: vi.fn().mockReturnValue(false),
39+
toggleClass: vi.fn().mockReturnThis(),
40+
on: vi.fn().mockReturnThis(),
41+
onChild: vi.fn().mockReturnThis(),
42+
setHtml: vi.fn().mockReturnThis(),
43+
setText: vi.fn().mockReturnThis(),
44+
remove: vi.fn(),
45+
setStyle: vi.fn().mockReturnThis(),
46+
getStyle: vi.fn().mockReturnValue({}),
47+
isFocused: vi.fn().mockReturnValue(false),
2548
qs: vi.fn().mockReturnValue(null),
26-
find: vi.fn(),
27-
addClass: vi.fn(),
28-
removeClass: vi.fn(),
29-
hide: vi.fn(),
30-
show: vi.fn(),
31-
setText: vi.fn(),
32-
prependHtml: vi.fn(),
33-
empty: vi.fn(),
34-
appendHtml: vi.fn(),
49+
qsr: vi.fn().mockImplementation(() => createMockElement()),
50+
qsa: vi.fn().mockReturnValue([]),
51+
empty: vi.fn().mockReturnThis(),
52+
appendHtml: vi.fn().mockReturnThis(),
53+
append: vi.fn().mockReturnThis(),
54+
prependHtml: vi.fn().mockReturnThis(),
55+
dispatch: vi.fn().mockReturnThis(),
56+
offset: vi.fn().mockReturnValue({ top: 0, left: 0 }),
57+
wrapWith: vi.fn().mockImplementation(() => createMockElement()),
58+
setValue: vi.fn().mockReturnThis(),
59+
getValue: vi.fn().mockReturnValue(""),
60+
getParent: vi.fn().mockImplementation(() => createMockElement()),
61+
replaceWith: vi.fn().mockReturnThis(),
62+
getOffsetWidth: vi.fn().mockReturnValue(0),
63+
getOffsetHeight: vi.fn().mockReturnValue(0),
64+
getOffsetTop: vi.fn().mockReturnValue(0),
65+
getOffsetLeft: vi.fn().mockReturnValue(0),
66+
animate: vi.fn().mockResolvedValue(null),
3567
native: document.createElement("div"),
3668
};
37-
38-
// Make chainable methods return the mock itself
39-
mock.qsr.mockImplementation(() => createMockElement());
40-
mock.addClass.mockReturnValue(mock);
41-
mock.removeClass.mockReturnValue(mock);
42-
mock.hide.mockReturnValue(mock);
43-
mock.show.mockReturnValue(mock);
44-
mock.setText.mockReturnValue(mock);
45-
mock.prependHtml.mockReturnValue(mock);
46-
mock.empty.mockReturnValue(mock);
47-
48-
return mock;
4969
};
5070

5171
return {

0 commit comments

Comments
 (0)