From f69d82e4dc9dca219d145650a4580e633e933976 Mon Sep 17 00:00:00 2001 From: David Laganiere <40720561+davidlag0@users.noreply.github.com> Date: Tue, 3 Jan 2023 19:10:51 -0500 Subject: [PATCH] test: tests for HomeLoggedOut component --- .../__tests__/unit/HomeLoggedOut.snapshot.jsx | 7 +++ .../__tests__/unit/HomeLoggedOut.test.jsx | 59 +++++++++++++++++++ .../HomeLoggedOut.snapshot.jsx.snap | 29 +++++++++ 3 files changed, 95 insertions(+) create mode 100644 frontend/__tests__/unit/HomeLoggedOut.snapshot.jsx create mode 100644 frontend/__tests__/unit/HomeLoggedOut.test.jsx create mode 100644 frontend/__tests__/unit/__snapshots__/HomeLoggedOut.snapshot.jsx.snap diff --git a/frontend/__tests__/unit/HomeLoggedOut.snapshot.jsx b/frontend/__tests__/unit/HomeLoggedOut.snapshot.jsx new file mode 100644 index 0000000..04460a6 --- /dev/null +++ b/frontend/__tests__/unit/HomeLoggedOut.snapshot.jsx @@ -0,0 +1,7 @@ +import { render } from "@testing-library/react"; +import HomeLoggedOut from "../../src/components/HomeLoggedOut"; + +it("renders HomeLoggedOut unchanged", () => { + const { container } = render(); + expect(container).toMatchSnapshot(); +}); diff --git a/frontend/__tests__/unit/HomeLoggedOut.test.jsx b/frontend/__tests__/unit/HomeLoggedOut.test.jsx new file mode 100644 index 0000000..aa27069 --- /dev/null +++ b/frontend/__tests__/unit/HomeLoggedOut.test.jsx @@ -0,0 +1,59 @@ +import { render, screen } from "@testing-library/react"; +import HomeLoggedOut from "../../src/components/HomeLoggedOut"; +import { Router } from "react-router-dom"; +import { createMemoryHistory } from "history"; +import { act } from "react-dom/test-utils"; + +var axios = require("axios"); +var MockAdapter = require("axios-mock-adapter"); +var mock = new MockAdapter(axios); + +describe("HomeLoggedOut", () => { + test("renders HomeLoggedOut when authentication is enabled", () => { + const history = createMemoryHistory(); + const goSpy = jest.spyOn(history, "go"); + + mock.onGet("/auth/login").reply(200, { enabled: true }); + + render( + + + + ); + + const projectDescription = screen.getByRole("heading", { + name: "ZeroUI - ZeroTier Controller Web UI - is a web user interface for a self-hosted ZeroTier network controller.", + }); + + const loginMessage = screen.getByText(/Please Log In to continue/i); + + expect(projectDescription).toBeInTheDocument(); + expect(loginMessage).toBeInTheDocument(); + expect(goSpy).not.toHaveBeenCalled(); + }); + + test("renders HomeLoggedOut when authentication is disabled", async () => { + const history = createMemoryHistory(); + const goSpy = jest.spyOn(history, "go"); + + mock.onGet("/auth/login").reply(200, { enabled: false }); + + await act(async () => { + render( + + + + ); + }); + + const projectDescription = screen.getByRole("heading", { + name: "ZeroUI - ZeroTier Controller Web UI - is a web user interface for a self-hosted ZeroTier network controller.", + }); + + const loginMessage = screen.getByText(/Please Log In to continue/i); + + expect(projectDescription).toBeInTheDocument(); + expect(loginMessage).toBeInTheDocument(); + expect(goSpy).toHaveBeenCalled(); + }); +}); diff --git a/frontend/__tests__/unit/__snapshots__/HomeLoggedOut.snapshot.jsx.snap b/frontend/__tests__/unit/__snapshots__/HomeLoggedOut.snapshot.jsx.snap new file mode 100644 index 0000000..8afbec2 --- /dev/null +++ b/frontend/__tests__/unit/__snapshots__/HomeLoggedOut.snapshot.jsx.snap @@ -0,0 +1,29 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`renders HomeLoggedOut unchanged 1`] = ` +
+
+
+
+ + ZeroUI - ZeroTier Controller Web UI - is a web user interface for a self-hosted ZeroTier network controller. + +
+

+ + Please Log In to continue + +

+
+
+
+`;