@@ -272,6 +272,32 @@ export function getRecordingLogger(
272272 } ;
273273}
274274
275+ /**
276+ * Checks whether `messages` contains `messageOrRegExp`.
277+ *
278+ * If `messageOrRegExp` is a string, this function returns true as long as
279+ * `messageOrRegExp` appears as part of one of the `messages`.
280+ *
281+ * If `messageOrRegExp` is a regular expression, this function returns true as long as
282+ * one of the `messages` matches `messageOrRegExp`.
283+ */
284+ function hasLoggedMessage (
285+ messages : LoggedMessage [ ] ,
286+ messageOrRegExp : string | RegExp ,
287+ ) : boolean {
288+ const check = ( val : string ) =>
289+ typeof messageOrRegExp === "string"
290+ ? val . includes ( messageOrRegExp )
291+ : messageOrRegExp . test ( val ) ;
292+
293+ return messages . some (
294+ ( msg ) => typeof msg . message === "string" && check ( msg . message ) ,
295+ ) ;
296+ }
297+
298+ /**
299+ * Checks that `messages` contains all of `expectedMessages`.
300+ */
275301export function checkExpectedLogMessages (
276302 t : ExecutionContext < any > ,
277303 messages : LoggedMessage [ ] ,
@@ -280,13 +306,7 @@ export function checkExpectedLogMessages(
280306 const missingMessages : string [ ] = [ ] ;
281307
282308 for ( const expectedMessage of expectedMessages ) {
283- if (
284- ! messages . some (
285- ( msg ) =>
286- typeof msg . message === "string" &&
287- msg . message . includes ( expectedMessage ) ,
288- )
289- ) {
309+ if ( ! hasLoggedMessage ( messages , expectedMessage ) ) {
290310 missingMessages . push ( expectedMessage ) ;
291311 }
292312 }
@@ -303,6 +323,20 @@ export function checkExpectedLogMessages(
303323 }
304324}
305325
326+ /**
327+ * Asserts that `message` should not have been logged to `logger`.
328+ */
329+ export function assertNotLogged (
330+ t : ExecutionContext < any > ,
331+ logger : RecordingLogger ,
332+ message : string | RegExp ,
333+ ) {
334+ t . false (
335+ hasLoggedMessage ( logger . messages , message ) ,
336+ `'${ message } ' should not have been logged, but was.` ,
337+ ) ;
338+ }
339+
306340/**
307341 * Initialises a recording logger and calls `body` with it.
308342 *
0 commit comments