@@ -72,6 +72,7 @@ export function createRouterAct(
72
72
}
73
73
74
74
let expectedResponses : Array < ExpectedResponseConfig > | null
75
+ let forbiddenResponses : Array < ExpectedResponseConfig > | null = null
75
76
let shouldBlockAll = false
76
77
if ( config === undefined || config === null ) {
77
78
// Default. Expect at least one request, but don't assert on the response.
@@ -101,6 +102,7 @@ export function createRouterAct(
101
102
expectedResponses = [ config ]
102
103
} else {
103
104
expectedResponses = [ ]
105
+ forbiddenResponses = [ config ]
104
106
}
105
107
} else {
106
108
expectedResponses = [ ]
@@ -113,6 +115,8 @@ export function createRouterAct(
113
115
}
114
116
if ( item . block !== 'reject' ) {
115
117
expectedResponses . push ( item )
118
+ } else {
119
+ forbiddenResponses = [ item ]
116
120
}
117
121
}
118
122
}
@@ -288,24 +292,28 @@ ${fulfilled.body}
288
292
`
289
293
throw error
290
294
}
291
- if ( expectedResponses !== null ) {
292
- let alreadyMatchedByThisResponse : string | null = null
293
- for ( const expectedResponse of expectedResponses ) {
294
- const includes = expectedResponse . includes
295
- const block = expectedResponse . block
295
+ if ( forbiddenResponses !== null ) {
296
+ for ( const forbiddenResponse of forbiddenResponses ) {
297
+ const includes = forbiddenResponse . includes
296
298
if ( fulfilled . body . includes ( includes ) ) {
297
- if ( block === 'reject' ) {
298
- error . message = `
299
+ error . message = `
299
300
Received a response containing an unexpected substring:
300
301
301
302
Rejected substring: ${ includes }
302
303
303
304
Response:
304
305
${ fulfilled . body }
305
306
`
306
- throw error
307
- }
308
-
307
+ throw error
308
+ }
309
+ }
310
+ }
311
+ if ( expectedResponses !== null ) {
312
+ let alreadyMatchedByThisResponse : string | null = null
313
+ for ( const expectedResponse of expectedResponses ) {
314
+ const includes = expectedResponse . includes
315
+ const block = expectedResponse . block
316
+ if ( fulfilled . body . includes ( includes ) ) {
309
317
// Match. Don't check yet whether the responses are received
310
318
// in the expected order. Instead collect all the matches and
311
319
// check at the end so we can include a diff in the
0 commit comments