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 (
<>
-