Skip to content

Commit 13110d2

Browse files
committed
CCM-13303: Improve component test
1 parent c1d60a6 commit 13110d2

1 file changed

Lines changed: 32 additions & 2 deletions

File tree

tests/playwright/digital-letters-component-tests/report-scheduler.component.spec.ts

Lines changed: 32 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,20 +7,50 @@ import { getLogsFromCloudwatch } from 'helpers/cloudwatch-helpers';
77
import expectToPassEventually from 'helpers/expectations';
88
import { 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+
1021
test.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

Comments
 (0)