From de068211121acb6e991bff88992cc1f93cc54b65 Mon Sep 17 00:00:00 2001 From: "Michael B. Gale" Date: Tue, 24 Feb 2026 20:45:41 +0000 Subject: [PATCH] Add `hasMessage` to `RecordingLogger` --- src/testing-utils.ts | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/src/testing-utils.ts b/src/testing-utils.ts index 8ed2e3155..d6fe86cb0 100644 --- a/src/testing-utils.ts +++ b/src/testing-utils.ts @@ -184,8 +184,8 @@ export interface LoggedMessage { export class RecordingLogger implements Logger { messages: LoggedMessage[] = []; - groups: string[] = []; - unfinishedGroups: Set = new Set(); + readonly groups: string[] = []; + readonly unfinishedGroups: Set = new Set(); private currentGroup: string | undefined = undefined; constructor(private readonly logToConsole: boolean = true) {} @@ -199,6 +199,19 @@ export class RecordingLogger implements Logger { } } + /** + * Checks whether the logged messages contain `messageOrRegExp`. + * + * If `messageOrRegExp` is a string, this function returns true as long as + * `messageOrRegExp` appears as part of one of the `messages`. + * + * If `messageOrRegExp` is a regular expression, this function returns true as long as + * one of the `messages` matches `messageOrRegExp`. + */ + hasMessage(messageOrRegExp: string | RegExp): boolean { + return hasLoggedMessage(this.messages, messageOrRegExp); + } + isDebug() { return true; } @@ -302,7 +315,7 @@ export function assertNotLogged( message: string | RegExp, ) { t.false( - hasLoggedMessage(logger.messages, message), + logger.hasMessage(message), `'${message}' should not have been logged, but was.`, ); }