1
0
mirror of https://gitlab.nic.cz/turris/reforis/foris-js.git synced 2025-06-16 13:46:16 +02:00

Loading and errors HOCs

This commit is contained in:
Maciej Lenartowicz
2019-11-07 17:21:14 +00:00
parent 644726a0fc
commit 8b39bf4193
8 changed files with 276 additions and 72 deletions

View File

@ -0,0 +1,61 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`conditional HOCs withError should render error message 1`] = `
<div>
<p
class="text-center text-danger"
>
An error occurred while fetching data.
</p>
</div>
`;
exports[`conditional HOCs withErrorMessage should render error message 1`] = `
<div>
<p
class="text-center text-danger"
>
An error occurred while fetching data.
</p>
</div>
`;
exports[`conditional HOCs withSpinner should render spinner 1`] = `
<div>
<div
class="spinner-wrapper my-3 text-center"
>
<div
class="spinner-border "
role="status"
>
<span
class="sr-only"
/>
</div>
<div
class="spinner-text"
/>
</div>
</div>
`;
exports[`conditional HOCs withSpinnerOnSending should render spinner 1`] = `
<div>
<div
class="spinner-wrapper my-3 text-center"
>
<div
class="spinner-border "
role="status"
>
<span
class="sr-only"
/>
</div>
<div
class="spinner-text"
/>
</div>
</div>
`;

View File

@ -0,0 +1,110 @@
/*
* Copyright (C) 2019 CZ.NIC z.s.p.o. (http://www.nic.cz/)
*
* This is free software, licensed under the GNU General Public License v3.
* See /LICENSE for more information.
*/
import React from "react";
import { render } from "customTestRender";
import {
withEither, withSpinner, withSending, withSpinnerOnSending, withError, withErrorMessage,
} from "../conditionalHOCs";
import { API_STATE } from "api/utils";
describe("conditional HOCs", () => {
const First = () => <p>First</p>;
const Alternative = () => <p>Alternative</p>;
describe("withEither", () => {
it("should render First component", () => {
const withAlternative = withEither(() => false, Alternative);
const FirstWithConditional = withAlternative(First);
const { getByText } = render(<FirstWithConditional />);
expect(getByText("First")).toBeDefined();
});
it("should render Alternative component", () => {
const withAlternative = withEither(() => true, Alternative);
const FirstWithConditional = withAlternative(First);
const { getByText } = render(<FirstWithConditional />);
expect(getByText("Alternative")).toBeDefined();
});
});
describe("withSpinner", () => {
it("should render First component", () => {
const withSpinnerHidden = withSpinner(() => false);
const FirstWithConditional = withSpinnerHidden(First);
const { getByText } = render(<FirstWithConditional />);
expect(getByText("First")).toBeDefined();
});
it("should render spinner", () => {
const withSpinnerVisible = withSpinner(() => true);
const FirstWithConditional = withSpinnerVisible(First);
const { container } = render(<FirstWithConditional />);
expect(container).toMatchSnapshot();
});
});
describe("withSending", () => {
it("should render First component", () => {
const withAlternative = withSending(Alternative);
const FirstWithConditional = withAlternative(First);
const { getByText } = render(<FirstWithConditional apiState={API_STATE.SUCCESS} />);
expect(getByText("First")).toBeDefined();
});
it("should render Alternative component", () => {
const withAlternative = withSending(Alternative);
const FirstWithConditional = withAlternative(First);
const { getByText } = render(<FirstWithConditional apiState={API_STATE.SENDING} />);
expect(getByText("Alternative")).toBeDefined();
});
});
describe("withSpinnerOnSending", () => {
it("should render First component", () => {
const FirstWithConditional = withSpinnerOnSending(First);
const { getByText } = render(<FirstWithConditional apiState={API_STATE.SUCCESS} />);
expect(getByText("First")).toBeDefined();
});
it("should render spinner", () => {
const FirstWithConditional = withSpinnerOnSending(First);
const { container } = render(<FirstWithConditional apiState={API_STATE.SENDING} />);
expect(container).toMatchSnapshot();
});
});
describe("withError", () => {
it("should render First component", () => {
const withErrorHidden = withError(() => false);
const FirstWithConditional = withErrorHidden(First);
const { getByText } = render(<FirstWithConditional />);
expect(getByText("First")).toBeDefined();
});
it("should render error message", () => {
const withErrorVisible = withError(() => true);
const FirstWithConditional = withErrorVisible(First);
const { container } = render(<FirstWithConditional />);
expect(container).toMatchSnapshot();
});
});
describe("withErrorMessage", () => {
it("should render First component", () => {
const FirstWithConditional = withErrorMessage(First);
const { getByText } = render(<FirstWithConditional apiState={API_STATE.SUCCESS} />);
expect(getByText("First")).toBeDefined();
});
it("should render error message", () => {
const FirstWithConditional = withErrorMessage(First);
const { container } = render(<FirstWithConditional apiState={API_STATE.ERROR} />);
expect(container).toMatchSnapshot();
});
});
});