Skip to content

Commit 1d4c3c0

Browse files
CCM-14616: Status handler subject change
1 parent a312037 commit 1d4c3c0

3 files changed

Lines changed: 31 additions & 4 deletions

File tree

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

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@ import {
99
recordEvent,
1010
} from '__tests__/test-data';
1111

12+
import { $LetterEvent } from '@nhsdigital/nhs-notify-event-schemas-supplier-api/src/events/letter-events';
13+
1214
const logger = mock<Logger>();
1315
const eventPublisher = mock<EventPublisher>();
1416

@@ -47,6 +49,8 @@ describe('SQS Handler', () => {
4749
type: 'uk.nhs.notify.digital.letters.print.letter.transitioned.v1',
4850
source:
4951
'/nhs/england/notify/production/primary/data-plane/digitalletters/print',
52+
subject:
53+
'client/32124dde-4b36-4a49-8686-e9da9cbff725/letter-request/2503cbd5-6722-4e90-9fbd-5f1e96d65c22',
5054
data: {
5155
senderId: pendingLetterEvent.data.origin.subject.split('/')[1],
5256
messageReference:
@@ -69,6 +73,22 @@ describe('SQS Handler', () => {
6973
expect(response).toEqual({ batchItemFailures: [] });
7074
});
7175

76+
it('should throw an error', async () => {
77+
const {
78+
data: item,
79+
error: parseError,
80+
success: parseSuccess,
81+
} = $LetterEvent.safeParse(pendingLetterEvent);
82+
83+
expect(parseSuccess).toBe(true);
84+
expect(parseError).toBeUndefined();
85+
expect(item).toBeDefined();
86+
87+
expect(item?.subject).toBe(
88+
'letter-origin/letter-rendering/letter/32124dde-4b36-4a49-8686-e9da9cbff725_2503cbd5-6722-4e90-9fbd-5f1e96d65c22',
89+
);
90+
});
91+
7292
it('should send print.letter.transitioned event when letter.PENDING received', async () => {
7393
const response = await handler(recordEvent([acceptedLetterEvent]));
7494

@@ -84,6 +104,8 @@ describe('SQS Handler', () => {
84104
type: 'uk.nhs.notify.digital.letters.print.letter.transitioned.v1',
85105
source:
86106
'/nhs/england/notify/production/primary/data-plane/digitalletters/print',
107+
subject:
108+
'client/f47ac10b-58cc-4372-a567-0e02b2c3d479/letter-request/2503cbd5-6722-4e90-9fbd-5f1e96d65c22',
87109
data: {
88110
senderId: acceptedLetterEvent.data.origin.subject.split('/')[1],
89111
messageReference:
@@ -121,6 +143,8 @@ describe('SQS Handler', () => {
121143
type: 'uk.nhs.notify.digital.letters.print.letter.transitioned.v1',
122144
source:
123145
'/nhs/england/notify/production/primary/data-plane/digitalletters/print',
146+
subject:
147+
'client/f47ac10b-58cc-4372-a567-0e02b2c3d480/letter-request/2503cbd5-6722-4e90-9fbd-5f1e96d65c22',
124148
data: {
125149
senderId: failedLetterEvent.data.origin.subject.split('/')[1],
126150
messageReference:

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

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,7 @@ function generateUpdatedEvent(event: LetterEvent): PrintLetterTransitioned {
104104
id: randomUUID(),
105105
time: eventTime,
106106
recordedtime: eventTime,
107+
subject: `client/${senderId}/letter-request/${messageReference}`,
107108
dataschema:
108109
'https://notify.nhs.uk/cloudevents/schemas/digital-letters/2025-10-draft/data/digital-letters-print-letter-transitioned-data.schema.json',
109110
type: 'uk.nhs.notify.digital.letters.print.letter.transitioned.v1',
@@ -153,7 +154,9 @@ export const createHandler = ({
153154
logger.info(
154155
`Generated event for incoming event with domainID: ${event.data.domainId}, subject: ${event.subject}`,
155156
);
156-
logger.info(`From SupplierAPI: ${JSON.stringify(event)} To PrintLetterTransitioned: ${JSON.stringify(generatedEvent)}`);
157+
logger.info(
158+
`From SupplierAPI: ${JSON.stringify(event)} To PrintLetterTransitioned: ${JSON.stringify(generatedEvent)}`,
159+
);
157160
} catch (error: any) {
158161
logger.warn({
159162
err: error.message,

tests/playwright/digital-letters-component-tests/print-status-handler.component.spec.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,6 @@ const baseLetterEvent = {
1515
id: '550e8400-e29b-41d4-a716-446655440001',
1616
specversion: '1.0',
1717
source: '/data-plane/supplier-api/prod/update-status',
18-
subject:
19-
'letter-origin/letter-rendering/letter/32124dde-4b36-4a49-8686-e9da9cbff725_2503cbd5-6722-4e90-9fbd-5f1e96d65c22',
2018
dataschemaversion: '1.0.16',
2119
time: '2023-06-20T12:00:00Z',
2220
recordedtime: '2023-06-20T12:00:00.250Z',
@@ -27,7 +25,7 @@ const baseLetterEvent = {
2725
plane: 'data',
2826
data: {
2927
domainId:
30-
'32124dde-4b36-4a49-8686-e9da9cbff725_2503cbd5-6722-4e90-9fbd-5f1e96d65c22',
28+
'00f3b388-bbe9-41c9-9e76-052d37ee8988_2503cbd5-6722-4e90-9fbd-5f1e96d65c22',
3129
groupId: 'client_template',
3230
specificationId: '1y3q9v1zzzz',
3331
supplierId: 'supplier-1',
@@ -65,6 +63,7 @@ test.describe('Print status handler', () => {
6563
const messageReference = uuidv4();
6664
const letterEvent = {
6765
...baseLetterEvent,
66+
subject: `letter-origin/letter-rendering/letter/00f3b388-bbe9-41c9-9e76-052d37ee8988_${messageReference}`,
6867
type: `uk.nhs.notify.supplier-api.letter.${status}.v1`,
6968
dataschema: `https://notify.nhs.uk/cloudevents/schemas/supplier-api/letter.${status}.1.0.16.schema.json`,
7069
data: {
@@ -105,6 +104,7 @@ test.describe('Print status handler', () => {
105104
[
106105
{
107106
...baseLetterEvent,
107+
subject: `letter-origin/letter-rendering/letter/00f3b388-bbe9-41c9-9e76-052d37ee8988_${messageReference}`,
108108
type: `uk.nhs.notify.supplier-api.letter.ACCEPTED.v1`,
109109
dataschema: `https://notify.nhs.uk/cloudevents/schemas/supplier-api/letter.ACCEPTED.1.0.0.schema.json`,
110110
data: {

0 commit comments

Comments
 (0)