From 700d01a8419ea988ba497feb90fb150a3387efb0 Mon Sep 17 00:00:00 2001 From: khushiagl Date: Tue, 18 Jul 2023 13:16:25 -0400 Subject: [PATCH] Adding appropriate spacing front-end tests --- .../Components/__tests__/singleselect_dropdown.test.jsx | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/app/assets/javascripts/Components/__tests__/singleselect_dropdown.test.jsx b/app/assets/javascripts/Components/__tests__/singleselect_dropdown.test.jsx index e92da11f6a..b6a46f0ff1 100644 --- a/app/assets/javascripts/Components/__tests__/singleselect_dropdown.test.jsx +++ b/app/assets/javascripts/Components/__tests__/singleselect_dropdown.test.jsx @@ -6,6 +6,7 @@ describe("SingleSelectDropdown", () => { let props; let onChange = jest.fn(); let options = ["a", "b", "c"]; + beforeEach(() => { props = { options: options, @@ -13,6 +14,7 @@ describe("SingleSelectDropdown", () => { select: onChange, defaultValue: "", }; + render(); }); @@ -22,11 +24,13 @@ describe("SingleSelectDropdown", () => { expect(screen.getByTestId("selection")).toHaveTextContent(""); }); }); + it("should not load the dropdown options", () => { expect(screen.queryByText("a")).toBeNull(); expect(screen.queryByText("b")).toBeNull(); expect(screen.queryByText("c")).toBeNull(); }); + it("should render a down arrow within the dropdown", () => { expect(screen.getByTestId("arrow-down")).toBeInTheDocument(); }); @@ -42,10 +46,12 @@ describe("SingleSelectDropdown", () => { expect(screen.getAllByRole("listitem").length).toBe(3); }); }); + describe("No options available", () => { beforeAll(() => { options = []; }); + it("should show no options available when there aren't any options to choose from", () => { fireEvent.click(screen.getByTestId("dropdown")); expect(screen.getByText("No options available")).toBeInTheDocument(); @@ -54,10 +60,12 @@ describe("SingleSelectDropdown", () => { expect(screen.queryByText("c")).toBeNull(); }); }); + it("should render a upward arrow within the dropdown", () => { fireEvent.click(screen.getByTestId("dropdown")); expect(screen.getByTestId("arrow-up")).toBeInTheDocument(); }); + it("should close the dropdown when clicked again", () => { fireEvent.click(screen.getByTestId("dropdown")); fireEvent.click(screen.getByTestId("dropdown"));