From 2dcb6a5aff951202e52f5dae432e832ead1fa266 Mon Sep 17 00:00:00 2001 From: Barroso Date: Sun, 31 May 2026 21:23:41 -0600 Subject: [PATCH] fix: keep new notifications unread --- apps/api/src/services/notificationService.js | 7 ++++++- apps/api/src/tests/notification.test.js | 20 ++++++++++++++++++++ 2 files changed, 26 insertions(+), 1 deletion(-) create mode 100644 apps/api/src/tests/notification.test.js diff --git a/apps/api/src/services/notificationService.js b/apps/api/src/services/notificationService.js index af13c04bfa..f4c1305f5b 100644 --- a/apps/api/src/services/notificationService.js +++ b/apps/api/src/services/notificationService.js @@ -5,7 +5,12 @@ export async function listNotifications() { } export async function createNotification(payload) { - const notification = { id: `ntf_${Date.now()}`, read: false, ...payload }; + const { read, ...notificationPayload } = payload; + const notification = { + id: `ntf_${Date.now()}`, + ...notificationPayload, + read: false + }; notifications.push(notification); return notification; } diff --git a/apps/api/src/tests/notification.test.js b/apps/api/src/tests/notification.test.js new file mode 100644 index 0000000000..6364c9a284 --- /dev/null +++ b/apps/api/src/tests/notification.test.js @@ -0,0 +1,20 @@ +import test from "node:test"; +import assert from "node:assert/strict"; +import { createNotification, listNotifications } from "../services/notificationService.js"; + +test("createNotification keeps new notifications unread even if payload includes read", async () => { + const notification = await createNotification({ + userId: "usr_notification_read_default", + type: "message", + message: "New proposal message", + read: true + }); + + assert.equal(notification.read, false); + + const storedNotification = (await listNotifications()).find( + (item) => item.id === notification.id + ); + + assert.equal(storedNotification?.read, false); +});