@@ -245,6 +245,32 @@ export function getRecordingLogger(
245245 } ;
246246}
247247
248+ /**
249+ * Checks whether `messages` contains `messageOrRegExp`.
250+ *
251+ * If `messageOrRegExp` is a string, this function returns true as long as
252+ * `messageOrRegExp` appears as part of one of the `messages`.
253+ *
254+ * If `messageOrRegExp` is a regular expression, this function returns true as long as
255+ * one of the `messages` matches `messageOrRegExp`.
256+ */
257+ function hasLoggedMessage (
258+ messages : LoggedMessage [ ] ,
259+ messageOrRegExp : string | RegExp ,
260+ ) : boolean {
261+ const check = ( val : string ) =>
262+ typeof messageOrRegExp === "string"
263+ ? val . includes ( messageOrRegExp )
264+ : messageOrRegExp . test ( val ) ;
265+
266+ return messages . some (
267+ ( msg ) => typeof msg . message === "string" && check ( msg . message ) ,
268+ ) ;
269+ }
270+
271+ /**
272+ * Checks that `messages` contains all of `expectedMessages`.
273+ */
248274export function checkExpectedLogMessages (
249275 t : ExecutionContext < any > ,
250276 messages : LoggedMessage [ ] ,
@@ -253,13 +279,7 @@ export function checkExpectedLogMessages(
253279 const missingMessages : string [ ] = [ ] ;
254280
255281 for ( const expectedMessage of expectedMessages ) {
256- if (
257- ! messages . some (
258- ( msg ) =>
259- typeof msg . message === "string" &&
260- msg . message . includes ( expectedMessage ) ,
261- )
262- ) {
282+ if ( ! hasLoggedMessage ( messages , expectedMessage ) ) {
263283 missingMessages . push ( expectedMessage ) ;
264284 }
265285 }
@@ -276,6 +296,20 @@ export function checkExpectedLogMessages(
276296 }
277297}
278298
299+ /**
300+ * Asserts that `message` should not have been logged to `logger`.
301+ */
302+ export function assertNotLogged (
303+ t : ExecutionContext < any > ,
304+ logger : RecordingLogger ,
305+ message : string | RegExp ,
306+ ) {
307+ t . false (
308+ hasLoggedMessage ( logger . messages , message ) ,
309+ `'${ message } ' should not have been logged, but was.` ,
310+ ) ;
311+ }
312+
279313/**
280314 * Initialises a recording logger and calls `body` with it.
281315 *
0 commit comments