Skip to content

Commit

Permalink
[web] Add missing unit test
Browse files Browse the repository at this point in the history
  • Loading branch information
dgdavid committed May 2, 2023
1 parent 40bd362 commit 517ce97
Showing 1 changed file with 68 additions and 0 deletions.
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) [2022-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 517ce97

Please sign in to comment.