diff --git a/ui/src/Components/MainModal/index.test.js b/ui/src/Components/MainModal/index.test.js
index 79b6e5ee6..fc0a699d6 100644
--- a/ui/src/Components/MainModal/index.test.js
+++ b/ui/src/Components/MainModal/index.test.js
@@ -1,6 +1,6 @@
import React from "react";
-import { shallow } from "enzyme";
+import { shallow, mount } from "enzyme";
import { AlertStore } from "Stores/AlertStore";
import { Settings } from "Stores/Settings";
@@ -14,27 +14,33 @@ beforeEach(() => {
settingsStore = new Settings();
});
-const RenderMainModal = () => {
+const ShallowMainModal = () => {
return shallow(
);
};
+const MountedMainModal = () => {
+ return mount(
+
+ );
+};
+
describe("", () => {
it("only renders FontAwesomeIcon when modal is not shown", () => {
- const tree = RenderMainModal();
+ const tree = ShallowMainModal();
expect(tree.text()).toBe("");
});
it("renders the modal when it is shown", () => {
- const tree = RenderMainModal();
+ const tree = ShallowMainModal();
const toggle = tree.find(".nav-link");
toggle.simulate("click");
expect(tree.text()).toBe("");
});
it("hides the modal when toggle() is called twice", () => {
- const tree = RenderMainModal();
+ const tree = ShallowMainModal();
const toggle = tree.find(".nav-link");
toggle.simulate("click");
toggle.simulate("click");
@@ -42,7 +48,7 @@ describe("", () => {
});
it("hides the modal when hide() is called", () => {
- const tree = RenderMainModal();
+ const tree = ShallowMainModal();
const toggle = tree.find(".nav-link");
toggle.simulate("click");
expect(tree.text()).toBe("");
@@ -50,4 +56,27 @@ describe("", () => {
instance.toggle.hide();
expect(tree.text()).toBe("");
});
+
+ it("'modal-open' class is appended to body node when modal is visible", () => {
+ const tree = MountedMainModal();
+ const toggle = tree.find(".nav-link");
+ toggle.simulate("click");
+ expect(document.body.className.split(" ")).toContain("modal-open");
+ });
+
+ it("'modal-open' class is removed from body node after modal is hidden", () => {
+ const tree = MountedMainModal();
+ const toggle = tree.find(".nav-link");
+ toggle.simulate("click");
+ toggle.simulate("click");
+ expect(document.body.className.split(" ")).not.toContain("modal-open");
+ });
+
+ it("'modal-open' class is removed from body node after modal is unmounted", () => {
+ const tree = MountedMainModal();
+ const toggle = tree.find(".nav-link");
+ toggle.simulate("click");
+ tree.unmount();
+ expect(document.body.className.split(" ")).not.toContain("modal-open");
+ });
});