From a72f7db000dfb5cd75563d3a73a6d6eb939d64db Mon Sep 17 00:00:00 2001 From: Momo Kornher Date: Thu, 1 May 2025 10:24:04 +0100 Subject: [PATCH] fix(toolkit-lib): log monitor error missing from IoMessage --- .../lib/api/logs-monitor/logs-monitor.ts | 2 +- .../api/logs-monitor/logs-monitor.test.ts | 24 ++++++++++--------- 2 files changed, 14 insertions(+), 12 deletions(-) diff --git a/packages/@aws-cdk/toolkit-lib/lib/api/logs-monitor/logs-monitor.ts b/packages/@aws-cdk/toolkit-lib/lib/api/logs-monitor/logs-monitor.ts index c8c8fe0c7..d1fb28796 100644 --- a/packages/@aws-cdk/toolkit-lib/lib/api/logs-monitor/logs-monitor.ts +++ b/packages/@aws-cdk/toolkit-lib/lib/api/logs-monitor/logs-monitor.ts @@ -163,7 +163,7 @@ export class CloudWatchLogEventMonitor { return; } } catch (e: any) { - await this.ioHelper.notify(IO.CDK_TOOLKIT_E5035.msg('Error occurred while monitoring logs: %s', { error: e })); + await this.ioHelper.notify(IO.CDK_TOOLKIT_E5035.msg(`Error occurred while monitoring logs: ${String(e)}`, { error: e })); } this.scheduleNextTick(); diff --git a/packages/@aws-cdk/toolkit-lib/test/api/logs-monitor/logs-monitor.test.ts b/packages/@aws-cdk/toolkit-lib/test/api/logs-monitor/logs-monitor.test.ts index aaad6a6c0..99452dffa 100644 --- a/packages/@aws-cdk/toolkit-lib/test/api/logs-monitor/logs-monitor.test.ts +++ b/packages/@aws-cdk/toolkit-lib/test/api/logs-monitor/logs-monitor.test.ts @@ -14,6 +14,7 @@ let sdk: MockSdk; let monitor: CloudWatchLogEventMonitor; let ioHost = new TestIoHost(); beforeEach(() => { + mockCloudWatchClient.reset(); monitor = new CloudWatchLogEventMonitor({ ioHelper: ioHost.asHelper('deploy'), startTime: new Date(T100), @@ -29,10 +30,10 @@ afterEach(async () => { test('process events', async () => { // GIVEN - const eventDate = new Date(T0 + 102 * 1000); - mockCloudWatchClient.on(FilterLogEventsCommand).resolves({ - events: [event(102, 'message', eventDate)], - }); + const eventDate = new Date(T102); + mockCloudWatchClient.on(FilterLogEventsCommand) + .resolvesOnce({ events: [event(102, 'message', eventDate)] }) + .resolves({ events: [] }); monitor.addLogGroups( { @@ -46,7 +47,7 @@ test('process events', async () => { // WHEN await monitor.activate(); // need time for the log processing to occur - await sleep(1000); + await sleep(2500); // THEN const expectedLocaleTimeString = eventDate.toLocaleTimeString(); @@ -56,16 +57,16 @@ test('process events', async () => { test('process truncated events', async () => { // GIVEN - const eventDate = new Date(T0 + 102 * 1000); + const eventDate = new Date(T102); const events: FilteredLogEvent[] = []; for (let i = 0; i < 100; i++) { events.push(event(102 + i, 'message' + i, eventDate)); } - mockCloudWatchClient.on(FilterLogEventsCommand).resolves({ - events, - nextToken: 'some-token', - }); + mockCloudWatchClient.on(FilterLogEventsCommand) + .resolvesOnce({ events, nextToken: 'some-token' }) + .resolves({ events: [] }); + monitor.addLogGroups( { name: 'name', @@ -78,7 +79,7 @@ test('process truncated events', async () => { // WHEN await monitor.activate(); // need time for the log processing to occur - await sleep(1000); + await sleep(2500); // THEN const expectedLocaleTimeString = eventDate.toLocaleTimeString(); @@ -91,6 +92,7 @@ test('process truncated events', async () => { const T0 = 1597837230504; const T100 = T0 + 100 * 1000; +const T102 = T0 + 102 * 1000; function event(nr: number, message: string, timestamp: Date): FilteredLogEvent { return { eventId: `${nr}`,