Skip to content

Commit

Permalink
Merge pull request #555 from openSUSE/improve-storage-options
Browse files Browse the repository at this point in the history
[web] Do not show group options name until needed
  • Loading branch information
dgdavid authored May 2, 2023
2 parents b1b9366 + 48dfa5b commit a1cf46e
Show file tree
Hide file tree
Showing 2 changed files with 69 additions and 4 deletions.
5 changes: 1 addition & 4 deletions web/src/components/storage/ProposalPageOptions.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -74,10 +74,7 @@ export default function ProposalPageOptions () {

return (
<PageOptions>
<PageOptions.Group
label="Configure"
key="devices-options"
>
<PageOptions.Group key="devices-options">
<If condition={showDasdLink} then={<DASDLink />} />
<ISCSILink />
</PageOptions.Group>
Expand Down
68 changes: 68 additions & 0 deletions web/src/components/storage/ProposalPageOptions.test.jsx
Original file line number Diff line number Diff line change
@@ -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(<ProposalPageOptions />);
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(<ProposalPageOptions />);
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(<ProposalPageOptions />);
const toggler = screen.getByRole("button");
await user.click(toggler);
expect(screen.queryByRole("menuitem", { name: /DASD/ })).toBeNull();
});

0 comments on commit a1cf46e

Please sign in to comment.