From be4524e5adf464647da408c3a5955a42ff9de21c Mon Sep 17 00:00:00 2001 From: Chloe Herd Date: Wed, 6 Dec 2023 10:19:11 -0500 Subject: [PATCH] Loader tests --- src/ux-components/loader/loader.spec.js | 54 +++++++++++++++++++++++++ 1 file changed, 54 insertions(+) diff --git a/src/ux-components/loader/loader.spec.js b/src/ux-components/loader/loader.spec.js index fb1eea21e..d56c4e0ed 100644 --- a/src/ux-components/loader/loader.spec.js +++ b/src/ux-components/loader/loader.spec.js @@ -28,4 +28,58 @@ describe("loader.vue", () => { loaderPosition: "left", }); }); + + describe("Blocking interaction on page", () => { + test("Does capture clicks if enabled (default)", async () => { + // Arrange + const div = document.createElement("div"); + div.id = "parent"; + document.body.appendChild(div); + + const parentClickFn = jest.fn(); + + div.addEventListener("click", parentClickFn); + + const wrapper = shallowMount(loader, { + props: {}, + attachTo: "#parent", + }); + + // Act + await wrapper.trigger("click"); + + // Assert + expect(parentClickFn).not.toBeCalled(); + + // Cleanup + document.body.removeChild(div); + }); + + test("Does not capture clicks if disabled", async () => { + // Arrange + const div = document.createElement("div"); + div.id = "parent"; + document.body.appendChild(div); + + const parentClickFn = jest.fn(); + + div.addEventListener("click", parentClickFn); + + const wrapper = shallowMount(loader, { + props: { + allowPageInteraction: true, + }, + attachTo: "#parent", + }); + + // Act + await wrapper.trigger("click"); + + // Assert + expect(parentClickFn).toBeCalled(); + + // Cleanup + document.body.removeChild(div); + }); + }); });