From aea873e9202c87489725733033d8dc0edd569055 Mon Sep 17 00:00:00 2001 From: John Wu <76966357+jwu-fisker@users.noreply.github.com> Date: Mon, 22 Mar 2021 11:29:35 -0700 Subject: [PATCH] Add role checks (#21) * Add role checks * Remove moved Roles enum --- src/components/App/App.test.js | 25 +- .../App/__snapshots__/App.test.js.snap | 1713 +++++++++-------- src/components/Contexts/UserContext.jsx | 21 +- src/components/Contexts/UserContext.test.jsx | 70 +- .../Contexts/__mocks__/UserContext.jsx | 15 +- .../FileUploadForm/FileUploadForm.test.js | 3 +- src/components/FileUploadForm/index.jsx | 21 +- src/components/Home/index.jsx | 35 + src/components/Layouts/MenuDrawer.jsx | 2 +- src/components/Layouts/SideMenu.jsx | 34 +- src/components/Layouts/SideMenu.test.jsx | 33 + .../__snapshots__/SideMenu.test.jsx.snap | 115 ++ src/components/Routes/AuthRoute.jsx | 15 +- src/components/Routes/SiteRoutes.jsx | 14 +- src/utils/jwt.js | 14 + src/utils/jwt.test.js | 15 + src/utils/roles.js | 35 + src/utils/roles.test.js | 10 + src/utils/testing.js | 8 + 19 files changed, 1305 insertions(+), 893 deletions(-) create mode 100644 src/components/Home/index.jsx create mode 100644 src/components/Layouts/SideMenu.test.jsx create mode 100644 src/components/Layouts/__snapshots__/SideMenu.test.jsx.snap create mode 100644 src/utils/jwt.js create mode 100644 src/utils/jwt.test.js create mode 100644 src/utils/roles.js create mode 100644 src/utils/roles.test.js create mode 100644 src/utils/testing.js diff --git a/src/components/App/App.test.js b/src/components/App/App.test.js index c816b0d..e9da1e6 100644 --- a/src/components/App/App.test.js +++ b/src/components/App/App.test.js @@ -4,9 +4,9 @@ jest.mock("../Contexts/VehicleContext"); import { render, screen, cleanup, waitForElementToBeRemoved } from "@testing-library/react"; import { setToken } from "../Contexts/UserContext"; +import { TEST_AUTH_OBJECT } from "../../utils/testing" import App from "."; -const TEST_TOKEN = { idToken: { jwtToken: "TEST" } }; const LOADING_STATUS = "Loading..."; const renderRoute = async (route) => { @@ -37,6 +37,12 @@ describe("App", () => { expect(container).toMatchSnapshot(); }); + it("Route /package-upload unauthenticated", async () => { + const container = await renderRoute("/package-upload"); + expect(container.querySelector("span.MuiButton-label").innerHTML).toEqual("Sign In"); + expect(container).toMatchSnapshot(); + }); + it("Route /vehicle-add unauthenticated", async () => { const container = await renderRoute("/vehicle-add"); expect(container.querySelector("span.MuiButton-label").innerHTML).toEqual("Sign In"); @@ -44,21 +50,28 @@ describe("App", () => { }); it("Route / authenticated", async () => { - setToken(TEST_TOKEN); + setToken(TEST_AUTH_OBJECT); const container = await renderRoute("/"); - expect(container.querySelector("h1").innerHTML).toEqual("Upload Update Package"); + expect(container.querySelector("h1").innerHTML).toEqual("Welcome John!"); expect(container).toMatchSnapshot(); }); it("Route /home authenticated", async () => { - setToken(TEST_TOKEN); + setToken(TEST_AUTH_OBJECT); const container = await renderRoute("/home"); + expect(container.querySelector("h1").innerHTML).toEqual("Welcome John!"); + expect(container).toMatchSnapshot(); + }); + + it("Route /package-upload authenticated", async () => { + setToken(TEST_AUTH_OBJECT); + const container = await renderRoute("/package-upload"); expect(container.querySelector("h1").innerHTML).toEqual("Upload Update Package"); expect(container).toMatchSnapshot(); }); it("Route /vehicle-add authenticated", async () => { - setToken(TEST_TOKEN); + setToken(TEST_AUTH_OBJECT); const container = await renderRoute("/vehicle-add"); expect(container.querySelector("h1").innerHTML).toEqual("Add Vehicle"); expect(container).toMatchSnapshot(); @@ -71,7 +84,7 @@ describe("App", () => { }); it("Route /page-not-found authenticated", async () => { - setToken(TEST_TOKEN); + setToken(TEST_AUTH_OBJECT); const container = await renderRoute("/page-not-found"); expect(container.querySelector("h1").innerHTML).toEqual("Page Not Found"); expect(container).toMatchSnapshot(); diff --git a/src/components/App/__snapshots__/App.test.js.snap b/src/components/App/__snapshots__/App.test.js.snap index f2b0a88..687782a 100644 --- a/src/components/App/__snapshots__/App.test.js.snap +++ b/src/components/App/__snapshots__/App.test.js.snap @@ -6,17 +6,17 @@ exports[`App Route / authenticated 1`] = ` data-testid="mocked-userprovider" >