Skip to content

Commit e141ca7

Browse files
test: update toolbar and palette tests to match textContent refactor
1 parent 5a65c50 commit e141ca7

2 files changed

Lines changed: 24 additions & 11 deletions

File tree

js/__tests__/palette.test.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1516,6 +1516,8 @@ describe("Palettes Class", () => {
15161516
insertRow: jest.fn(() => ({
15171517
style: {},
15181518
innerHTML: "",
1519+
textContent: "",
1520+
appendChild: jest.fn(),
15191521
children: [{ style: {}, appendChild: jest.fn() }]
15201522
}))
15211523
},

js/__tests__/toolbar.test.js

Lines changed: 22 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -182,7 +182,8 @@ describe("Toolbar Class", () => {
182182
test("renderLogoIcon sets up logo with correct interactions", () => {
183183
const elements = {
184184
"mb-logo": {
185-
innerHTML: "",
185+
textContent: "",
186+
appendChild: jest.fn(),
186187
onmouseenter: null,
187188
onmouseleave: null,
188189
onclick: null,
@@ -208,7 +209,7 @@ describe("Toolbar Class", () => {
208209

209210
//Non-Japanese language
210211
toolbar.renderLogoIcon(mockOnClick);
211-
expect(elements["mb-logo"].innerHTML).toBe("");
212+
expect(elements["mb-logo"].textContent).toBe("");
212213
expect(typeof elements["mb-logo"].onmouseenter).toBe("function");
213214
expect(typeof elements["mb-logo"].onmouseleave).toBe("function");
214215
expect(typeof elements["mb-logo"].onclick).toBe("function");
@@ -225,8 +226,7 @@ describe("Toolbar Class", () => {
225226
// Japanese language
226227
toolbar.language = "ja";
227228
toolbar.renderLogoIcon(mockOnClick);
228-
expect(elements["mb-logo"].innerHTML).toContain("logo-ja.svg");
229-
expect(elements["mb-logo"].innerHTML).toContain("transform: scale(0.85)");
229+
expect(elements["mb-logo"].appendChild).toHaveBeenCalled();
230230
elements["mb-logo"].onclick();
231231
expect(mockOnClick).toHaveBeenCalledTimes(2);
232232
});
@@ -385,10 +385,13 @@ describe("Toolbar Class", () => {
385385
});
386386

387387
test("renderThemeSelectIcon sets onclick and updates theme selection", () => {
388-
const themeSelectIcon = { onclick: null };
388+
const themeSelectIcon = { onclick: null, textContent: "", childNodes: [], appendChild: jest.fn(), cloneNode: jest.fn() };
389389
const themes = ["light", "dark"];
390390
const themeBox = { setAttribute: jest.fn() };
391-
global.docById.mockReturnValue(themeSelectIcon);
391+
global.docById.mockImplementation(id => {
392+
if (id === "themeSelectIcon") return themeSelectIcon;
393+
return { childNodes: [], cloneNode: jest.fn() };
394+
});
392395
global.localStorage.themePreference = "light";
393396
toolbar.renderThemeSelectIcon(themeBox, themes);
394397
expect(themeSelectIcon.onclick).toBeInstanceOf(Function);
@@ -576,7 +579,9 @@ describe("Toolbar Class", () => {
576579
const recordButton = {
577580
classList: { add: jest.fn() },
578581
style: { display: "" },
579-
innerHTML: ""
582+
innerHTML: "",
583+
textContent: "",
584+
appendChild: jest.fn()
580585
};
581586
global.docById.mockReturnValue(recordButton);
582587
global.fnBrowserDetect = jest.fn(() => "firefox");
@@ -592,13 +597,17 @@ describe("Toolbar Class", () => {
592597
classList: { add: jest.fn(), remove: jest.fn() },
593598
style: { display: "" },
594599
innerHTML: "",
600+
textContent: "",
601+
appendChild: jest.fn(),
595602
onclick: null
596603
};
597604

598605
const recordDropdownArrow = {
599606
classList: { add: jest.fn(), remove: jest.fn() },
600607
style: { display: "" },
601608
innerHTML: "",
609+
textContent: "",
610+
appendChild: jest.fn(),
602611
addEventListener: jest.fn(),
603612
removeEventListener: jest.fn(),
604613
querySelector: jest.fn(() => ({ textContent: "arrow_drop_down" })),
@@ -728,7 +737,7 @@ describe("Toolbar Class", () => {
728737
clickHandler();
729738

730739
expect(mockOnClick).toHaveBeenCalledWith(toolbar.activity, false);
731-
expect(elements.menu.innerHTML).toBe("more_vert");
740+
expect(elements.menu.textContent).toBe("more_vert");
732741
expect(elements.toggleAuxBtn.classList.add).toHaveBeenCalledWith("blue", "darken-1");
733742
expect(elements.search.classList.toggle).toHaveBeenCalledWith("open");
734743

@@ -737,7 +746,7 @@ describe("Toolbar Class", () => {
737746

738747
expect(mockOnClick).toHaveBeenCalledWith(toolbar.activity, true);
739748
expect(elements["aux-toolbar"].style.display).toBe("none");
740-
expect(elements.menu.innerHTML).toBe("menu");
749+
expect(elements.menu.textContent).toBe("menu");
741750
expect(elements.toggleAuxBtn.classList.remove).toHaveBeenCalledWith("blue", "darken-1");
742751
expect(elements.toggleAuxBtn.className).toBe("tooltipped aux-toggle");
743752
expect(elements.chooseKeyDiv.style.display).toBe("none");
@@ -1062,7 +1071,7 @@ describe("Toolbar Class", () => {
10621071
test("closeAuxToolbar hides auxiliary toolbar if visible", () => {
10631072
const elements = {
10641073
"aux-toolbar": { style: { display: "block" } },
1065-
"menu": { innerHTML: "" },
1074+
"menu": { innerHTML: "", textContent: "", appendChild: jest.fn() },
10661075
"toggleAuxBtn": {
10671076
className: "some-class blue darken-1",
10681077
classList: {
@@ -1077,7 +1086,7 @@ describe("Toolbar Class", () => {
10771086
toolbar.activity = {};
10781087
toolbar.closeAuxToolbar(mockOnClick);
10791088
expect(elements["aux-toolbar"].style.display).toBe("none");
1080-
expect(elements.menu.innerHTML).toBe("menu");
1089+
expect(elements.menu.textContent).toBe("menu");
10811090
expect(mockOnClick).toHaveBeenCalledWith(toolbar.activity, false);
10821091
expect(elements.toggleAuxBtn.classList.remove).toHaveBeenCalledWith("blue", "darken-1");
10831092
});
@@ -1283,6 +1292,8 @@ describe("Toolbar Class", () => {
12831292
classList: { add: jest.fn(), remove: jest.fn(), contains: jest.fn(() => false) },
12841293
style: { display: "block" },
12851294
innerHTML: "",
1295+
textContent: "",
1296+
appendChild: jest.fn(),
12861297
addEventListener: jest.fn(),
12871298
querySelector: jest.fn(() => ({ textContent: "" })),
12881299
contains: jest.fn(() => false)

0 commit comments

Comments
 (0)