Skip to content

Commit eb86a5b

Browse files
Clean up tests
1 parent 918f9c7 commit eb86a5b

File tree

4 files changed

+61
-14
lines changed

4 files changed

+61
-14
lines changed

lambdas/api-handler/src/handlers/__tests__/letter-status-update.test.ts

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -99,8 +99,12 @@ describe('createLetterStatusUpdateHandler', () => {
9999
await letterStatusUpdateHandler(buildEvent(letterToUpdate), context, callback);
100100

101101
expect(mockedDeps.letterRepo.updateLetterStatus).toHaveBeenCalledWith(letterToUpdate[0]);
102-
expect(mockedDeps.logger.error).toHaveBeenCalledWith({ err: mockError},
103-
'Error processing update: messageId=mid-id1 correlationId=correlationId-id1');
102+
expect(mockedDeps.logger.error).toHaveBeenCalledWith({
103+
err: mockError,
104+
messageId: 'mid-id1',
105+
correlationId: 'correlationId-id1',
106+
messageBody: '{\"id\":\"id1\",\"status\":\"ACCEPTED\",\"supplierId\":\"s1\"}',
107+
}, 'Error processing letter status update');
104108
});
105109
});
106110

lambdas/api-handler/src/handlers/letter-status-update.ts

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,12 @@ async function processMessageAsync(message: SQSRecord, deps: Deps): Promise<any>
1616
try {
1717
const letterToUpdate: LetterDto = LetterDtoSchema.parse(JSON.parse(message.body));
1818
await deps.letterRepo.updateLetterStatus(letterToUpdate);
19-
deps.logger.info(`Processed update to letterId=${letterToUpdate.id} supplierId=${letterToUpdate.supplierId} correlationId=${message.messageAttributes["CorrelationId"].stringValue}`);
2019
} catch (error) {
21-
deps.logger.error({ err: error }, `Error processing update: messageId=${message.messageId} correlationId=${message.messageAttributes["CorrelationId"].stringValue}`);
20+
deps.logger.error({
21+
err: error,
22+
messageId: message.messageId,
23+
correlationId: message.messageAttributes['CorrelationId'].stringValue,
24+
messageBody: message.body
25+
}, 'Error processing letter status update');
2226
}
2327
}

lambdas/api-handler/src/services/__tests__/letter-operations.test.ts

Lines changed: 41 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -266,6 +266,8 @@ describe('enqueueLetterUpdateRequests function', () => {
266266

267267
const result = await enqueueLetterUpdateRequests(updateLettersRequest, 'supplier1', 'correlationId1', deps);
268268

269+
expect(result).toBeUndefined();
270+
269271
expect(deps.sqsClient.send).toHaveBeenNthCalledWith(1, expect.objectContaining({
270272
input: {
271273
QueueUrl: deps.env.QUEUE_URL,
@@ -313,23 +315,55 @@ describe('enqueueLetterUpdateRequests function', () => {
313315
id: 'id1',
314316
type: 'Letter',
315317
attributes: {
316-
status: 'REJECTED',
317-
reasonCode: 123,
318-
reasonText: 'Reason text',
318+
status: 'ACCEPTED'
319+
}
320+
},
321+
{
322+
id: 'id2',
323+
type: 'Letter',
324+
attributes: {
325+
status: 'REJECTED'
319326
}
320327
}
321328
]
322329
};
323-
const sqsClient = { send: jest.fn().mockRejectedValue(mockError) } as unknown as SQSClient;
330+
const sqsClient = { send: jest.fn()
331+
.mockRejectedValue(mockError)
332+
.mockResolvedValueOnce({ MessageId: 'm1' })
333+
} as unknown as SQSClient;
324334
const logger = { error: jest.fn() } as unknown as pino.Logger;
325335
const env = {
326336
QUEUE_URL: 'sqsUrl'
327337
};
328338
const deps: Deps = { sqsClient, logger, env } as Deps;
329339

330-
await enqueueLetterUpdateRequests(updateLettersRequest, 'supplier1', 'correlationId1', deps);
340+
const result = await enqueueLetterUpdateRequests(updateLettersRequest, 'supplier1', 'correlationId1', deps);
341+
342+
expect(result).toBeUndefined();
343+
344+
expect(deps.sqsClient.send).toHaveBeenNthCalledWith(2, expect.objectContaining({
345+
input: {
346+
QueueUrl: deps.env.QUEUE_URL,
347+
MessageAttributes: {
348+
CorrelationId: {
349+
DataType: 'String',
350+
StringValue: 'correlationId1',
351+
}
352+
},
353+
MessageBody: JSON.stringify({
354+
id: updateLettersRequest.data[1].id,
355+
supplierId: 'supplier1',
356+
status: updateLettersRequest.data[1].attributes.status
357+
})
358+
}
359+
}));
331360

332-
expect(deps.logger.error).toHaveBeenCalledWith({ err: mockError},
333-
'Error queuing letterId=id1 supplierId=supplier1 correlationId=correlationId1 for update');
361+
expect(deps.logger.error).toHaveBeenCalledWith({
362+
err: mockError,
363+
correlationId: 'correlationId1',
364+
letterId: 'id2',
365+
letterStatus: 'REJECTED',
366+
supplierId: 'supplier1'
367+
}, 'Error enqueuing letter status update');
334368
});
335369
});

lambdas/api-handler/src/services/letter-operations.ts

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -91,13 +91,18 @@ export async function enqueueLetterUpdateRequests(postLettersRequest: PostLetter
9191
MessageBody: JSON.stringify(mapPostLetterResourceToDto(request, supplierId)),
9292
});
9393
await deps.sqsClient.send(command);
94-
deps.logger.info(`Enqueued letter update: url=${command.input.QueueUrl}, message=${command.input.MessageBody}, correlationId=${correlationId}`)
9594
} catch (err) {
96-
deps.logger.error({ err }, `Error queuing letterId=${request.id} supplierId=${supplierId} correlationId=${correlationId} for update`);
95+
deps.logger.error({
96+
err,
97+
correlationId: correlationId,
98+
letterId: request.id,
99+
letterStatus: request.attributes.status,
100+
supplierId: supplierId
101+
}, 'Error enqueuing letter status update');
97102
}
98103
});
99104

100-
await Promise.allSettled(tasks);
105+
await Promise.all(tasks);
101106
}
102107

103108
function isNotFoundError(error: any) {

0 commit comments

Comments
 (0)