Skip to content

Commit e03b51a

Browse files
committed
CCM-13675: Get rid of js validators in lamdbas
1 parent 7a1a975 commit e03b51a

4 files changed

Lines changed: 18 additions & 10 deletions

File tree

lambdas/print-sender-lambda/src/__tests__/app/print-sender.test.ts

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -119,10 +119,7 @@ describe('PrintSender', () => {
119119

120120
mockEventPublisher.sendEvents.mockImplementation(
121121
async (events, validator) => {
122-
const isValid = validator(events[0]);
123-
if (!isValid) {
124-
throw new Error('Event validation failed');
125-
}
122+
validator(events[0], mockLogger);
126123
return [];
127124
},
128125
);
@@ -160,12 +157,11 @@ describe('PrintSender', () => {
160157
const [[events, eventValidator]] =
161158
mockEventPublisher.sendEvents.mock.calls;
162159
const event = events[0] as LetterRequestPreparedEvent;
163-
const validationResult = eventValidator(event);
160+
expect(() => eventValidator(event, mockLogger)).not.toThrow();
164161

165162
expect(event.source).toBe(
166163
'/data-plane/digital-letters/staging-account/staging',
167164
);
168-
expect(validationResult).toBe(true);
169165
});
170166
});
171167
});

lambdas/print-sender-lambda/src/app/print-sender.ts

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { PDFAnalysed } from 'digital-letters-events';
1+
import { InvalidEvent, PDFAnalysed } from 'digital-letters-events';
22
import { EventPublisher, Logger } from 'utils';
33
import { randomUUID } from 'node:crypto';
44
import {
@@ -53,7 +53,16 @@ export class PrintSender {
5353

5454
await this.eventPublisher.sendEvents<LetterRequestPreparedEvent>(
5555
[letterPreparedEvent],
56-
(event) => $LetterRequestPreparedEvent.safeParse(event).success,
56+
(event, logger) => {
57+
const parseResult = $LetterRequestPreparedEvent.safeParse(event);
58+
if (!parseResult.success) {
59+
logger.error({
60+
err: parseResult.error,
61+
description: 'Error parsing LetterRequestPreparedEvent event',
62+
});
63+
throw new InvalidEvent('Invalid LetterRequestPreparedEvent');
64+
}
65+
},
5766
);
5867
} catch (error) {
5968
this.logger.error({

lambdas/print-status-handler/src/apis/sqs-handler.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,10 @@ import {
99
$LetterEvent,
1010
LetterEvent,
1111
} from '@nhsdigital/nhs-notify-event-schemas-supplier-api/src/events/letter-events';
12-
import { PrintLetterTransitioned, validatePrintLetterTransitioned } from 'digital-letters-events';
12+
import {
13+
PrintLetterTransitioned,
14+
validatePrintLetterTransitioned,
15+
} from 'digital-letters-events';
1316
import { EventPublisher, Logger } from 'utils';
1417

1518
export interface HandlerDependencies {

src/typescript-schema-generator/src/generate-guard-functions.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ export async function generateGuardFunctions() {
1919
const validatorVariableName = `event${typeName}Validator`;
2020

2121
let guardFunction = `import ${validatorVariableName} from 'digital-letters-events/${typeName}.js'\n`;
22-
guardFunction += `import { InvalidEvent, type ${typeName} } from 'digital-letters-events';`;
22+
guardFunction += `import { InvalidEvent, type ${typeName} } from 'digital-letters-events';\n`;
2323
guardFunction += `import { Logger } from 'utils';\n\n`;
2424

2525
guardFunction += `export function validate${typeName}(\n`;

0 commit comments

Comments
 (0)