From fcde299197cc2f73d22c69c8ce32bad376827ed1 Mon Sep 17 00:00:00 2001 From: John Wu <76966357+jwu-fisker@users.noreply.github.com> Date: Wed, 20 Jan 2021 13:36:40 -0800 Subject: [PATCH] Enable file upload form Enable error boundary to catch React errors (#7) Fix warning for link noreferrer Include authorization header with file upload --- src/components/Contexts/FileUploadContext.jsx | 8 ++++---- .../Contexts/FileUploadContext.test.jsx | 17 ++++++++++++++--- src/components/ErrorBoundary.jsx | 3 ++- .../FileUploadForm/FileUploadForm.test.js | 8 +++++--- src/components/FileUploadForm/index.jsx | 9 +++++---- src/components/ModalProgressBar/index.jsx | 11 ++++++----- src/index.js | 6 ++++-- src/services/__mocks__/uploadFile.js | 2 +- src/services/uploadFile.js | 3 ++- 9 files changed, 43 insertions(+), 24 deletions(-) diff --git a/src/components/Contexts/FileUploadContext.jsx b/src/components/Contexts/FileUploadContext.jsx index 351cde9..74739bc 100644 --- a/src/components/Contexts/FileUploadContext.jsx +++ b/src/components/Contexts/FileUploadContext.jsx @@ -24,10 +24,10 @@ export const FileUploadProvider = ({ children }) => { done(); }; - const upload = async (files) => { + const upload = async (files, accessToken) => { try { - if (!files || files.length === 0) throw new Error("No file provided"); - + if (!files || files.length === 0) throw new Error("File required"); + if (!accessToken || accessToken.length === 0) throw new Error("Access token required") const file = files[0].file; const filename = file.name; @@ -37,7 +37,7 @@ export const FileUploadProvider = ({ children }) => { setStatus(`Uploading ${filename}`); setCancelUpload(getCancelToken()); - const { data } = await uploadFile(file, setProgress, cancelUpload); + const { data } = await uploadFile(file, accessToken, setProgress, cancelUpload); if (data.message) throw new Error(`${data.error}. ${data.message}`); const url = ((data && data.link) ? data.link : "No URL available"); setLinkURL(url); diff --git a/src/components/Contexts/FileUploadContext.test.jsx b/src/components/Contexts/FileUploadContext.test.jsx index c79b071..293bcf0 100644 --- a/src/components/Contexts/FileUploadContext.test.jsx +++ b/src/components/Contexts/FileUploadContext.test.jsx @@ -1,6 +1,6 @@ jest.mock("../../services/uploadFile"); -import {uploadFile, getCancelToken, setUploadFileResponse, setUploadFileDelay, getIssuedCancelToken } from "../../services/uploadFile" +import { setUploadFileDelay } from "../../services/uploadFile" import { FileUploadProvider, useFileUploadContext } from "../Contexts/FileUploadContext"; import {render, cleanup, screen, fireEvent, waitFor} from "@testing-library/react" @@ -9,6 +9,8 @@ describe("FileUploadContext", () => { beforeEach(() => { const TestComp = () => { const { progress, uploading, status, linkURL, upload, cancel } = useFileUploadContext(); + const TEST_FILE = [{ file: { name: "test.jpg" }}]; + const TEST_ACCESSTOKEN = "ACCESSTOKEN"; return ( <>
{uploading.toString()}
@@ -16,7 +18,8 @@ describe("FileUploadContext", () => {
{status}
{linkURL}