@@ -7,20 +7,50 @@ import { getLogsFromCloudwatch } from 'helpers/cloudwatch-helpers';
77import expectToPassEventually from 'helpers/expectations' ;
88import { invokeLambda } from 'helpers/lambda-helpers' ;
99
10+ function yesterdayDateRange ( ) {
11+ const yesterday = new Date ( Date . now ( ) - 24 * 60 * 60 * 1000 ) ;
12+ const yesterdayStart = new Date ( yesterday . setUTCHours ( 0 , 0 , 0 , 0 ) ) ;
13+ const yesterdayEnd = new Date ( yesterday . setUTCHours ( 23 , 59 , 59 , 999 ) ) ;
14+
15+ return {
16+ yesterdayStart : yesterdayStart . toISOString ( ) ,
17+ yesterdayEnd : yesterdayEnd . toISOString ( ) ,
18+ } ;
19+ }
20+
1021test . describe ( 'Digital Letters - Report Scheduler' , ( ) => {
1122 test ( 'should send reporting.generate.report for all senders' , async ( ) => {
1223 invokeLambda ( REPORT_SCHEDULER_LAMBDA_NAME ) ;
1324
1425 await expectToPassEventually ( async ( ) => {
15- const eventLogEntry = await getLogsFromCloudwatch (
26+ const eventLogEntries = await getLogsFromCloudwatch (
1627 EVENT_BUS_LOG_GROUP_NAME ,
1728 [
1829 '$.message_type = "EVENT_RECEIPT"' ,
1930 '$.details.detail_type = "uk.nhs.notify.digital.letters.reporting.generate.report.v1"' ,
2031 ] ,
2132 ) ;
2233
23- expect ( eventLogEntry . length ) . toEqual ( 3 ) ;
34+ const parsedEvents = eventLogEntries . map ( ( entry : any ) =>
35+ JSON . parse ( entry . details . event_detail ) ,
36+ ) ;
37+
38+ const { yesterdayEnd, yesterdayStart } = yesterdayDateRange ( ) ;
39+
40+ for ( const event of parsedEvents ) {
41+ expect ( event . type ) . toBe (
42+ 'uk.nhs.notify.digital.letters.reporting.generate.report.v1' ,
43+ ) ;
44+ expect ( event . data ) . toBeDefined ( ) ;
45+ expect ( event . data . senderId ) . toBeDefined ( ) ;
46+ expect ( event . data . reportPeriodStartTime ) . toBe ( yesterdayStart ) ;
47+ expect ( event . data . reportPeriodEndTime ) . toBe ( yesterdayEnd ) ;
48+ }
49+
50+ const senderIds = parsedEvents . map ( ( event ) => event . data . senderId ) ;
51+ expect ( senderIds ) . toContain ( '2b8ebb33-8b33-49bd-949e-c12e22d25320' ) ;
52+ expect ( senderIds ) . toContain ( 'f017669b-6da4-4576-9d59-3d2b7f005ae2' ) ;
53+ expect ( senderIds ) . toContain ( '67403568-166e-41d0-900a-1f31fe93a091' ) ;
2454 } , 120 ) ;
2555 } ) ;
2656} ) ;
0 commit comments