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}