diff --git a/backend/__tests__/fp-submissions-cleanup.property.test.js b/backend/__tests__/fp-submissions-cleanup.property.test.js index 12cb164..6027ff3 100644 --- a/backend/__tests__/fp-submissions-cleanup.property.test.js +++ b/backend/__tests__/fp-submissions-cleanup.property.test.js @@ -31,7 +31,9 @@ const lifecycleStatusArb = fc.constantFrom('submitted', 'approved', 'rejected', const dismissedAtArb = fc.oneof( fc.constant(null), - fc.date({ min: new Date('2020-01-01'), max: new Date('2030-12-31') }).map(d => d.toISOString()) + fc.date({ min: new Date('2020-01-01T00:00:00.000Z'), max: new Date('2030-12-31T00:00:00.000Z') }) + .filter(d => !isNaN(d.getTime())) + .map(d => d.toISOString()) ); const submissionArb = fc.record({ diff --git a/frontend/src/components/pages/ReportingPage.js b/frontend/src/components/pages/ReportingPage.js index 463db18..c0d7755 100644 --- a/frontend/src/components/pages/ReportingPage.js +++ b/frontend/src/components/pages/ReportingPage.js @@ -4087,11 +4087,16 @@ function FpEditModal({ open, onClose, submission, queueItems, onSuccess }) {
{/* Ivanti reviewer notes (rework/approval/previous state feedback) */} {(() => { + const safeText = (val) => { + if (!val) return null; + if (typeof val === 'string') return val; + try { return JSON.stringify(val); } catch { return String(val); } + }; const notes = [ - submission.ivanti_rework_note && { label: 'Rework Note', text: submission.ivanti_rework_note }, - submission.ivanti_approval_note && { label: 'Approval Note', text: submission.ivanti_approval_note }, - submission.ivanti_current_state_notes && { label: 'Current State Notes', text: submission.ivanti_current_state_notes }, - submission.ivanti_previous_state_notes && { label: 'Previous State Notes', text: submission.ivanti_previous_state_notes }, + safeText(submission.ivanti_rework_note) && { label: 'Rework Note', text: safeText(submission.ivanti_rework_note) }, + safeText(submission.ivanti_approval_note) && { label: 'Approval Note', text: safeText(submission.ivanti_approval_note) }, + safeText(submission.ivanti_current_state_notes) && { label: 'Current State Notes', text: safeText(submission.ivanti_current_state_notes) }, + safeText(submission.ivanti_previous_state_notes) && { label: 'Previous State Notes', text: safeText(submission.ivanti_previous_state_notes) }, ].filter(Boolean); return notes.length > 0 ? notes.map((note, idx) => (