From ee4fc069cf859da67a527025a063a3153e07fa30 Mon Sep 17 00:00:00 2001 From: janosbabik Date: Thu, 30 Jul 2026 13:50:55 +0200 Subject: [PATCH] fix(validateProposalMessage): ensure submitted status is a boolean --- .../utils/validateProposalMessage.spec.ts | 45 +++++++++++++++++++ .../utils/validateProposalMessage.ts | 2 +- 2 files changed, 46 insertions(+), 1 deletion(-) diff --git a/src/queue/consumers/utils/validateProposalMessage.spec.ts b/src/queue/consumers/utils/validateProposalMessage.spec.ts index 1f608865..f4e9a2da 100644 --- a/src/queue/consumers/utils/validateProposalMessage.spec.ts +++ b/src/queue/consumers/utils/validateProposalMessage.spec.ts @@ -29,4 +29,49 @@ describe('Validate messages', () => { }) ).not.toThrow(); }); + + it('should accept a false submitted status', () => { + expect(() => + validateProposalMessage({ + title: 'Test proposal', + abstract: 'Test abstract', + members: [], + proposalPk: 1, + shortCode: '123123', + instruments: [{ id: 1, shortCode: 'TEST', allocatedTime: 1 }], + newStatus: 'REVIEW', + callId: 123, + submitted: false, + proposer: { + id: 1, + firstName: 'Test', + lastName: 'User', + email: 'test.user@email.com', + oidcSub: 'testOidcSub', + }, + }) + ).not.toThrow(); + }); + + it('should throw when submitted status is missing', () => { + expect(() => + validateProposalMessage({ + title: 'Test proposal', + abstract: 'Test abstract', + members: [], + proposalPk: 1, + shortCode: '123123', + instruments: [{ id: 1, shortCode: 'TEST', allocatedTime: 1 }], + newStatus: 'REVIEW', + callId: 123, + proposer: { + id: 1, + firstName: 'Test', + lastName: 'User', + email: 'test.user@email.com', + oidcSub: 'testOidcSub', + }, + }) + ).toThrow('Proposal Submitted status is missing'); + }); }); diff --git a/src/queue/consumers/utils/validateProposalMessage.ts b/src/queue/consumers/utils/validateProposalMessage.ts index 5dee51b7..aa063c77 100644 --- a/src/queue/consumers/utils/validateProposalMessage.ts +++ b/src/queue/consumers/utils/validateProposalMessage.ts @@ -33,7 +33,7 @@ export function validateProposalMessage( throw new Error('Proposal CallId is missing'); } - if (!proposalMessage.submitted) { + if (typeof proposalMessage.submitted !== 'boolean') { throw new Error('Proposal Submitted status is missing'); }