From f7c951da4a3dac26288eca234ee7fb8381e520f5 Mon Sep 17 00:00:00 2001 From: James Brooks <12275865+jamesobrooks@users.noreply.github.com> Date: Tue, 4 Mar 2025 10:52:42 -0600 Subject: [PATCH] Fix cases-runtime-state test and logging Jira ticket: CAMS-421 Co-authored-by: Brian Posey <15091170+btposey@users.noreply.github.com> --- .../dataflows/cases-runtime-state.test.ts | 20 +++++++++++++++++-- .../dataflows/cases-runtime-state.ts | 2 +- 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/backend/lib/use-cases/dataflows/cases-runtime-state.test.ts b/backend/lib/use-cases/dataflows/cases-runtime-state.test.ts index a48dfc63f..7d7731025 100644 --- a/backend/lib/use-cases/dataflows/cases-runtime-state.test.ts +++ b/backend/lib/use-cases/dataflows/cases-runtime-state.test.ts @@ -15,27 +15,43 @@ describe('storeRuntimeState tests', () => { jest.restoreAllMocks(); }); - test('should persist a new sync state', async () => { + test('should persist a new sync state and log', async () => { jest.spyOn(MockMongoRepository.prototype, 'read').mockResolvedValue(undefined); const upsertSpy = jest .spyOn(MockMongoRepository.prototype, 'upsert') .mockResolvedValue(undefined); const lastSyncDate = new Date().toISOString(); + const errorLogSpy = jest.spyOn(context.logger, 'camsError'); + const infoLogSpy = jest.spyOn(context.logger, 'info'); await CasesRuntimeState.storeRuntimeState(context, lastSyncDate); expect(upsertSpy).toHaveBeenCalledWith({ documentType: 'CASES_SYNC_STATE', lastSyncDate, }); + expect(errorLogSpy).not.toHaveBeenCalled(); + expect(infoLogSpy).toHaveBeenCalledWith( + expect.any(String), + expect.stringContaining('Wrote runtime state: '), + expect.anything(), + ); }); - test('should throw CamsError', async () => { + test('should log CamsError', async () => { const original: CasesSyncState = { documentType: 'CASES_SYNC_STATE', lastSyncDate: '1000', }; jest.spyOn(MockMongoRepository.prototype, 'read').mockResolvedValue(original); jest.spyOn(MockMongoRepository.prototype, 'upsert').mockRejectedValue(new Error('some error')); + const errorLogSpy = jest.spyOn(context.logger, 'camsError'); + const infoLogSpy = jest.spyOn(context.logger, 'info'); await expect(CasesRuntimeState.storeRuntimeState(context, '1001')).resolves.toBeUndefined(); + expect(errorLogSpy).toHaveBeenCalled(); + expect(infoLogSpy).not.toHaveBeenCalledWith( + expect.any(String), + expect.stringContaining('Wrote runtime state: '), + expect.anything(), + ); }); }); diff --git a/backend/lib/use-cases/dataflows/cases-runtime-state.ts b/backend/lib/use-cases/dataflows/cases-runtime-state.ts index 5926c7199..cd5fc7ef7 100644 --- a/backend/lib/use-cases/dataflows/cases-runtime-state.ts +++ b/backend/lib/use-cases/dataflows/cases-runtime-state.ts @@ -13,7 +13,7 @@ async function storeRuntimeState(context: ApplicationContext, lastSyncDate: stri lastSyncDate, }; await runtimeStateRepo.upsert(newSyncState); - context.logger.info(MODULE_NAME, `Wrote runtime state: ${newSyncState}.`); + context.logger.info(MODULE_NAME, `Wrote runtime state: `, newSyncState); } catch (originalError) { const error = getCamsError( originalError,