From 39e779dc1d6df99bc31978ccfaaaabf9ec57167b Mon Sep 17 00:00:00 2001 From: John Wu <76966357+jwu-fisker@users.noreply.github.com> Date: Thu, 4 Mar 2021 14:30:56 -0800 Subject: [PATCH] Use compute auth service and fix static code analyzer warnings (#15) * Clean up formatting * Use new compute_auth service Implment SSO Implement token refresh Clean up unit tests * Fix unit tests * Fix auth test Fix warnings * Update default settings for compute_auth --- .vscode/settings.json | 3 + src/components/404/index.jsx | 4 +- src/components/App/App.test.js | 21 +- .../App/__snapshots__/App.test.js.snap | 524 +----------------- src/components/App/index.jsx | 6 +- src/components/Contexts/FileUploadContext.jsx | 48 +- .../Contexts/FileUploadContext.test.jsx | 105 ++-- src/components/Contexts/UserContext.jsx | 190 ++++--- src/components/Contexts/UserContext.test.jsx | 296 ++++++---- .../Contexts/__mocks__/FileUploadContext.jsx | 6 +- .../Contexts/__mocks__/UserContext.jsx | 23 +- src/components/ErrorBoundary.jsx | 23 +- src/components/FileUploadForm/index.jsx | 71 ++- src/components/MessageBar.jsx | 23 +- src/components/ModalProgressBar/index.jsx | 27 +- src/components/Routes/AuthRoute.jsx | 11 +- src/components/Routes/ProtectedRoute.jsx | 22 +- src/components/Routes/SiteRoutes.jsx | 43 +- src/components/SSOForm/SSOForm.test.js | 19 + .../__snapshots__/SSOForm.test.js.snap | 40 ++ src/components/SSOForm/index.jsx | 45 ++ src/components/SignInForm/SignInForm.test.jsx | 15 - .../__snapshots__/SignInForm.test.jsx.snap | 145 ----- src/components/SignInForm/index.jsx | 78 --- src/components/SignUpForm/SignUpForm.test.jsx | 17 - .../__snapshots__/SignUpForm.test.jsx.snap | 189 ------- src/components/SignUpForm/index.jsx | 90 --- src/components/{Styles.jsx => useStyles.jsx} | 12 +- src/index.css | 7 +- src/services/__mocks__/auth.js | 13 +- src/services/__mocks__/uploadFile.js | 2 +- src/services/auth.js | 22 +- src/services/auth.test.js | 23 + src/setupTests.js | 2 +- 34 files changed, 703 insertions(+), 1462 deletions(-) create mode 100644 .vscode/settings.json create mode 100644 src/components/SSOForm/SSOForm.test.js create mode 100644 src/components/SSOForm/__snapshots__/SSOForm.test.js.snap create mode 100644 src/components/SSOForm/index.jsx delete mode 100644 src/components/SignInForm/SignInForm.test.jsx delete mode 100644 src/components/SignInForm/__snapshots__/SignInForm.test.jsx.snap delete mode 100644 src/components/SignInForm/index.jsx delete mode 100644 src/components/SignUpForm/SignUpForm.test.jsx delete mode 100644 src/components/SignUpForm/__snapshots__/SignUpForm.test.jsx.snap delete mode 100644 src/components/SignUpForm/index.jsx rename src/components/{Styles.jsx => useStyles.jsx} (60%) create mode 100644 src/services/auth.test.js diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..cac0e10 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "editor.formatOnSave": true +} \ No newline at end of file diff --git a/src/components/404/index.jsx b/src/components/404/index.jsx index 9d266a0..2493367 100644 --- a/src/components/404/index.jsx +++ b/src/components/404/index.jsx @@ -1,6 +1,6 @@ import { Typography } from "@material-ui/core"; import React from "react"; -import useStyles from '../Styles'; +import useStyles from "../useStyles"; const PageNotFound = () => { const classes = useStyles(); @@ -12,6 +12,6 @@ const PageNotFound = () => { ); -} +}; export default PageNotFound; diff --git a/src/components/App/App.test.js b/src/components/App/App.test.js index 628b509..150a38a 100644 --- a/src/components/App/App.test.js +++ b/src/components/App/App.test.js @@ -1,11 +1,11 @@ jest.mock("../Contexts/UserContext"); jest.mock("../Contexts/FileUploadContext"); -import { render, screen, cleanup, waitForElementToBeRemoved, waitFor } from "@testing-library/react" +import { render, screen, cleanup, waitForElementToBeRemoved } from "@testing-library/react"; import { setToken } from "../Contexts/UserContext"; import App from "."; -const TEST_TOKEN = { idToken: { jwtToken: "TEST" }}; +const TEST_TOKEN = { idToken: { jwtToken: "TEST" } }; const LOADING_STATUS = "Loading..."; const renderRoute = async (route) => { @@ -26,19 +26,13 @@ describe("App", () => { it("Route / unauthenticated", async () => { const container = await renderRoute("/"); - expect(container.querySelector("h1").innerHTML).toEqual("Sign in"); - expect(container).toMatchSnapshot(); - }); - - it("Route /signup unauthenticated", async () => { - const container = await renderRoute("/signup"); - expect(container.querySelector("h1").innerHTML).toEqual("Sign up"); + expect(container.querySelector("h1").innerHTML).toEqual("Fisker OTA Portal"); expect(container).toMatchSnapshot(); }); it("Route /home unauthenticated", async () => { const container = await renderRoute("/home"); - expect(container.querySelector("h1").innerHTML).toEqual("Sign in"); + expect(container.querySelector("h1").innerHTML).toEqual("Fisker OTA Portal"); expect(container).toMatchSnapshot(); }); @@ -49,13 +43,6 @@ describe("App", () => { expect(container).toMatchSnapshot(); }); - it("Route /signup authenticated", async () => { - setToken(TEST_TOKEN); - const container = await renderRoute("/signup"); - expect(container.querySelector("h1").innerHTML).toEqual("Upload file"); - expect(container).toMatchSnapshot(); - }); - it("Route /home authenticated", async () => { setToken(TEST_TOKEN); const container = await renderRoute("/home"); diff --git a/src/components/App/__snapshots__/App.test.js.snap b/src/components/App/__snapshots__/App.test.js.snap index 68cc874..21b2926 100644 --- a/src/components/App/__snapshots__/App.test.js.snap +++ b/src/components/App/__snapshots__/App.test.js.snap @@ -9,7 +9,7 @@ exports[`App Route / authenticated 1`] = ` class="MuiContainer-root MuiContainer-maxWidthXs" >