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
+
+
+
+
+
+`;