From cd2e558b393eaa4786e80d4fe0fdedc0552bc0a7 Mon Sep 17 00:00:00 2001 From: Greg Adams <41639787+greg-adams@users.noreply.github.com> Date: Fri, 11 Oct 2024 10:07:03 -0700 Subject: [PATCH] Chore: add confirmation toast for treasury email (#487) * add missing tests * add success/error toasts --- api/src/services/uploads/uploads.test.ts | 3 +-- api/src/services/uploads/uploads.ts | 4 +++- web/src/pages/Upload/UploadsPage/UploadsPage.tsx | 9 +++++---- 3 files changed, 9 insertions(+), 7 deletions(-) diff --git a/api/src/services/uploads/uploads.test.ts b/api/src/services/uploads/uploads.test.ts index d64a68af..cedb8c06 100644 --- a/api/src/services/uploads/uploads.test.ts +++ b/api/src/services/uploads/uploads.test.ts @@ -480,9 +480,8 @@ describe('treasury report', () => { .fn() .mockRejectedValue(new Error('Database error')) - const result = await sendTreasuryReport() + await expect(sendTreasuryReport()).rejects.toThrow('Database error') - expect(result).toBe(false) expect(logger.error).toHaveBeenCalledWith( expect.any(Error), 'Error sending Treasury Report' diff --git a/api/src/services/uploads/uploads.ts b/api/src/services/uploads/uploads.ts index 6125a98f..02a2f229 100644 --- a/api/src/services/uploads/uploads.ts +++ b/api/src/services/uploads/uploads.ts @@ -7,6 +7,8 @@ import type { } from 'types/graphql' import { v4 as uuidv4 } from 'uuid' +import { RedwoodError } from '@redwoodjs/api' + import { CurrentUser } from 'src/lib/auth' import { hasRole } from 'src/lib/auth' import { @@ -411,6 +413,6 @@ export const sendTreasuryReport: MutationResolvers['sendTreasuryReport'] = return true } catch (error) { logger.error(error, 'Error sending Treasury Report') - return false + throw new RedwoodError(error.message) } } diff --git a/web/src/pages/Upload/UploadsPage/UploadsPage.tsx b/web/src/pages/Upload/UploadsPage/UploadsPage.tsx index fdadeed4..794cbf3f 100644 --- a/web/src/pages/Upload/UploadsPage/UploadsPage.tsx +++ b/web/src/pages/Upload/UploadsPage/UploadsPage.tsx @@ -2,7 +2,8 @@ import { ROLES } from 'api/src/lib/constants' import { Button, ButtonGroup } from 'react-bootstrap' import { useAuth } from 'web/src/auth' -import { useMutation, MetaTags } from '@redwoodjs/web' +import { useMutation, Metadata } from '@redwoodjs/web' +import { toast } from '@redwoodjs/web/toast' import UploadsCell from 'src/components/Upload/UploadsCell' @@ -16,10 +17,10 @@ const UploadsPage = () => { const { hasRole } = useAuth() const [sendTreasuryReport] = useMutation(SEND_TREASURY_REPORT, { onCompleted: () => { - console.log('Treasury Report sent by email') + toast.success('Treasury Report has been sent') }, onError: (error) => { - console.error('Error sending Treasury Report by email', error) + toast.error('Error sending Treasury Report by email: ' + error.message) }, }) @@ -29,7 +30,7 @@ const UploadsPage = () => { return ( <> - +

Uploads