@@ -48,7 +48,7 @@ test.describe('PDM Poll', () => {
4848 test . describe ( 'pdm.resource.submitted' , ( ) => {
4949 test ( 'should send a pdm.resource.available event when available in PDM' , async ( ) => {
5050 const eventId = uuidv4 ( ) ;
51- const documentResourceId = '9ae75410-c067-35ae-9410-153fa849a4dd' ;
51+ const resourceId = '9ae75410-c067-35ae-9410-153fa849a4dd' ;
5252 const messageReference = uuidv4 ( ) ;
5353 const senderId = uuidv4 ( ) ;
5454
@@ -58,7 +58,7 @@ test.describe('PDM Poll', () => {
5858 ...submittedEvent ,
5959 id : eventId ,
6060 data : {
61- resourceId : documentResourceId ,
61+ resourceId,
6262 messageReference,
6363 senderId,
6464 } ,
@@ -85,7 +85,7 @@ test.describe('PDM Poll', () => {
8585
8686 test ( 'should send a pdm.resource.unavailable event when unavailable in PDM' , async ( ) => {
8787 const eventId = uuidv4 ( ) ;
88- const documentResourceId = 'unavailable-response' ;
88+ const resourceId = 'unavailable-response' ;
8989 const messageReference = uuidv4 ( ) ;
9090 const senderId = uuidv4 ( ) ;
9191
@@ -95,7 +95,7 @@ test.describe('PDM Poll', () => {
9595 ...submittedEvent ,
9696 id : eventId ,
9797 data : {
98- resourceId : documentResourceId ,
98+ resourceId,
9999 messageReference,
100100 senderId,
101101 } ,
@@ -121,9 +121,47 @@ test.describe('PDM Poll', () => {
121121 } ) ;
122122
123123 test . describe ( 'pdm.resource.unavailable' , ( ) => {
124+ test ( 'should send a pdm.resource.available event when an unavailable resource becomes available in PDM' , async ( ) => {
125+ const eventId = uuidv4 ( ) ;
126+ const resourceId = uuidv4 ( ) ;
127+ const messageReference = uuidv4 ( ) ;
128+ const senderId = uuidv4 ( ) ;
129+
130+ await eventPublisher . sendEvents (
131+ [
132+ {
133+ ...unavailableEvent ,
134+ id : eventId ,
135+ data : {
136+ resourceId,
137+ messageReference,
138+ senderId,
139+ retryCount : 0 ,
140+ } ,
141+ } ,
142+ ] ,
143+ pdmResourceUnavailableValidator ,
144+ ) ;
145+
146+ await expectToPassEventually ( async ( ) => {
147+ const eventLogEntry = await getLogsFromCloudwatch (
148+ EVENT_BUS_LOG_GROUP_NAME ,
149+ [
150+ '$.message_type = "EVENT_RECEIPT"' ,
151+ '$.details.detail_type = "uk.nhs.notify.digital.letters.pdm.resource.available.v1"' ,
152+ `$.details.event_detail = "*\\"messageReference\\":\\"${ messageReference } \\"*"` ,
153+ `$.details.event_detail = "*\\"odsCode\\":\\"Y05868\\"*"` ,
154+ `$.details.event_detail = "*\\"nhsNumber\\":\\"9912003071\\"*"` ,
155+ ] ,
156+ ) ;
157+
158+ expect ( eventLogEntry . length ) . toEqual ( 1 ) ;
159+ } , 120 ) ;
160+ } ) ;
161+
124162 test ( 'should send a pdm.resource.unavailable event when still unavailable in PDM' , async ( ) => {
125163 const eventId = uuidv4 ( ) ;
126- const documentResourceId = 'unavailable-response' ;
164+ const resourceId = 'unavailable-response' ;
127165 const messageReference = uuidv4 ( ) ;
128166 const senderId = uuidv4 ( ) ;
129167
@@ -133,7 +171,7 @@ test.describe('PDM Poll', () => {
133171 ...unavailableEvent ,
134172 id : eventId ,
135173 data : {
136- resourceId : documentResourceId ,
174+ resourceId,
137175 messageReference,
138176 senderId,
139177 retryCount : 0 ,
@@ -160,7 +198,7 @@ test.describe('PDM Poll', () => {
160198
161199 test ( 'should send a pdm.resource.retries.exceeded event when unavailable in PDM after 10 retries' , async ( ) => {
162200 const eventId = uuidv4 ( ) ;
163- const documentResourceId = 'unavailable-response' ;
201+ const resourceId = 'unavailable-response' ;
164202 const messageReference = uuidv4 ( ) ;
165203 const senderId = uuidv4 ( ) ;
166204
@@ -170,7 +208,7 @@ test.describe('PDM Poll', () => {
170208 ...unavailableEvent ,
171209 id : eventId ,
172210 data : {
173- resourceId : documentResourceId ,
211+ resourceId,
174212 messageReference,
175213 senderId,
176214 retryCount : 9 ,
@@ -201,7 +239,7 @@ test.describe('PDM Poll', () => {
201239 test . setTimeout ( 550_000 ) ;
202240
203241 const eventId = uuidv4 ( ) ;
204- const documentResourceId = 'b8f2b194-31e1-3719-aaf9-a9195e35e692' ;
242+ const resourceId = 'b8f2b194-31e1-3719-aaf9-a9195e35e692' ;
205243 const messageReference = uuidv4 ( ) ;
206244 const senderId = uuidv4 ( ) ;
207245
@@ -215,7 +253,7 @@ test.describe('PDM Poll', () => {
215253 'https://notify.nhs.uk/cloudevents/schemas/digital-letters/2025-10-draft/data/digital-letters-pdm-resource-unavailable-data.schema.json' ,
216254 type : 'uk.nhs.notify.digital.letters.pdm.resource.unavailable.v1' ,
217255 data : {
218- resourceId : documentResourceId ,
256+ resourceId,
219257 messageReference,
220258 senderId,
221259 } ,
0 commit comments