From 40bd3620879cee49e0a4b00d3804f8cf36bcf4ba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20D=C3=ADaz=20Gonz=C3=A1lez?= Date: Tue, 2 May 2023 10:09:25 +0100 Subject: [PATCH 1/2] [web] Do not show group options name until needed Since it can be confusing --- web/src/components/storage/ProposalPageOptions.jsx | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/web/src/components/storage/ProposalPageOptions.jsx b/web/src/components/storage/ProposalPageOptions.jsx index 858e8310e3..8982645ea0 100644 --- a/web/src/components/storage/ProposalPageOptions.jsx +++ b/web/src/components/storage/ProposalPageOptions.jsx @@ -74,10 +74,7 @@ export default function ProposalPageOptions () { return ( - + } /> From 48dfa5b39b43cc434e5e51a7646373440aef9926 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20D=C3=ADaz=20Gonz=C3=A1lez?= Date: Tue, 2 May 2023 10:10:02 +0100 Subject: [PATCH 2/2] [web] Add missing unit test --- .../storage/ProposalPageOptions.test.jsx | 68 +++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 web/src/components/storage/ProposalPageOptions.test.jsx diff --git a/web/src/components/storage/ProposalPageOptions.test.jsx b/web/src/components/storage/ProposalPageOptions.test.jsx new file mode 100644 index 0000000000..54c640c4c6 --- /dev/null +++ b/web/src/components/storage/ProposalPageOptions.test.jsx @@ -0,0 +1,68 @@ +/* + * Copyright (c) [2023] SUSE LLC + * + * All Rights Reserved. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of version 2 of the GNU General Public License as published + * by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, contact SUSE LLC. + * + * To contact SUSE LLC about this file by physical or electronic mail, you may + * find current contact information at www.suse.com. + */ + +import React from "react"; +import { screen } from "@testing-library/react"; +import { installerRender, mockLayout } from "~/test-utils"; +import { createClient } from "~/client"; +import { ProposalPageOptions } from "~/components/storage"; + +jest.mock("~/client"); +jest.mock("~/components/layout/Layout", () => mockLayout()); + +const isDASDSupportedFn = jest.fn(); + +const dasd = { + isSupported: isDASDSupportedFn +}; + +beforeEach(() => { + isDASDSupportedFn.mockResolvedValue(false); + + createClient.mockImplementation(() => { + return { + storage: { dasd } + }; + }); +}); + +it("contains an entry for configuring iSCSI", async () => { + const { user } = installerRender(); + const toggler = screen.getByRole("button"); + await user.click(toggler); + screen.getByRole("menuitem", { name: /iSCSI/ }); +}); + +it("contains an entry for configuring DASD when is supported", async () => { + isDASDSupportedFn.mockResolvedValue(true); + const { user } = installerRender(); + const toggler = screen.getByRole("button"); + await user.click(toggler); + screen.getByRole("menuitem", { name: /DASD/ }); +}); + +it("does not contain an entry for configuring DASD when is NOT supported", async () => { + isDASDSupportedFn.mockResolvedValue(false); + const { user } = installerRender(); + const toggler = screen.getByRole("button"); + await user.click(toggler); + expect(screen.queryByRole("menuitem", { name: /DASD/ })).toBeNull(); +});