Skip to content

Commit 256fe96

Browse files
authored
fix(toolkit-lib): log monitor error missing from IoMessage (#438)
Fixes the error messages not being include for generic LogMonitor errors. Also updates the tests to be more reliable. --- By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license
1 parent 9bc66f1 commit 256fe96

File tree

2 files changed

+14
-12
lines changed

2 files changed

+14
-12
lines changed

packages/@aws-cdk/toolkit-lib/lib/api/logs-monitor/logs-monitor.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,7 @@ export class CloudWatchLogEventMonitor {
163163
return;
164164
}
165165
} catch (e: any) {
166-
await this.ioHelper.notify(IO.CDK_TOOLKIT_E5035.msg('Error occurred while monitoring logs: %s', { error: e }));
166+
await this.ioHelper.notify(IO.CDK_TOOLKIT_E5035.msg(`Error occurred while monitoring logs: ${String(e)}`, { error: e }));
167167
}
168168

169169
this.scheduleNextTick();

packages/@aws-cdk/toolkit-lib/test/api/logs-monitor/logs-monitor.test.ts

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ let sdk: MockSdk;
1414
let monitor: CloudWatchLogEventMonitor;
1515
let ioHost = new TestIoHost();
1616
beforeEach(() => {
17+
mockCloudWatchClient.reset();
1718
monitor = new CloudWatchLogEventMonitor({
1819
ioHelper: ioHost.asHelper('deploy'),
1920
startTime: new Date(T100),
@@ -29,10 +30,10 @@ afterEach(async () => {
2930

3031
test('process events', async () => {
3132
// GIVEN
32-
const eventDate = new Date(T0 + 102 * 1000);
33-
mockCloudWatchClient.on(FilterLogEventsCommand).resolves({
34-
events: [event(102, 'message', eventDate)],
35-
});
33+
const eventDate = new Date(T102);
34+
mockCloudWatchClient.on(FilterLogEventsCommand)
35+
.resolvesOnce({ events: [event(102, 'message', eventDate)] })
36+
.resolves({ events: [] });
3637

3738
monitor.addLogGroups(
3839
{
@@ -46,7 +47,7 @@ test('process events', async () => {
4647
// WHEN
4748
await monitor.activate();
4849
// need time for the log processing to occur
49-
await sleep(1000);
50+
await sleep(2500);
5051

5152
// THEN
5253
const expectedLocaleTimeString = eventDate.toLocaleTimeString();
@@ -56,16 +57,16 @@ test('process events', async () => {
5657

5758
test('process truncated events', async () => {
5859
// GIVEN
59-
const eventDate = new Date(T0 + 102 * 1000);
60+
const eventDate = new Date(T102);
6061
const events: FilteredLogEvent[] = [];
6162
for (let i = 0; i < 100; i++) {
6263
events.push(event(102 + i, 'message' + i, eventDate));
6364
}
6465

65-
mockCloudWatchClient.on(FilterLogEventsCommand).resolves({
66-
events,
67-
nextToken: 'some-token',
68-
});
66+
mockCloudWatchClient.on(FilterLogEventsCommand)
67+
.resolvesOnce({ events, nextToken: 'some-token' })
68+
.resolves({ events: [] });
69+
6970
monitor.addLogGroups(
7071
{
7172
name: 'name',
@@ -78,7 +79,7 @@ test('process truncated events', async () => {
7879
// WHEN
7980
await monitor.activate();
8081
// need time for the log processing to occur
81-
await sleep(1000);
82+
await sleep(2500);
8283

8384
// THEN
8485
const expectedLocaleTimeString = eventDate.toLocaleTimeString();
@@ -91,6 +92,7 @@ test('process truncated events', async () => {
9192

9293
const T0 = 1597837230504;
9394
const T100 = T0 + 100 * 1000;
95+
const T102 = T0 + 102 * 1000;
9496
function event(nr: number, message: string, timestamp: Date): FilteredLogEvent {
9597
return {
9698
eventId: `${nr}`,

0 commit comments

Comments
 (0)