Skip to content
Prev Previous commit
Next Next commit
Add hasMessage to RecordingLogger
  • Loading branch information
mbg committed Mar 16, 2026
commit de068211121acb6e991bff88992cc1f93cc54b65
19 changes: 16 additions & 3 deletions src/testing-utils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -184,8 +184,8 @@ export interface LoggedMessage {

export class RecordingLogger implements Logger {
messages: LoggedMessage[] = [];
groups: string[] = [];
unfinishedGroups: Set<string> = new Set();
readonly groups: string[] = [];
readonly unfinishedGroups: Set<string> = new Set();
private currentGroup: string | undefined = undefined;

constructor(private readonly logToConsole: boolean = true) {}
Expand All @@ -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);
Comment thread
mbg marked this conversation as resolved.
}

isDebug() {
return true;
}
Expand Down Expand Up @@ -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.`,
);
}
Expand Down