javascript / expert
Snippet
Benutzerdefinierte Assertion-Matcher für Next.js-Header- und Redirect-Validierung
Beim Testen von Next.js-Middleware oder API-Routen-Antworten können vorgefertigte Test-Assertions unübersichtlich werden. Das Erstellen benutzerdefinierter Matcher über `expect.extend` ermöglicht eine saubere Validierung von Response-Objekten und prüft Header-Schlüssel gegen String-Literale oder reguläre Ausdrücke mit detaillierten Fehlermeldungen.
snippet.js
javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
expect.extend({toHaveHeader(response, headerName, expectedValue) {const actualValue = response.headers.get(headerName);const pass = expectedValue instanceof RegExp? expectedValue.test(actualValue ?? ''): actualValue === expectedValue;return {pass,message: () =>`Expected header "${headerName}" to ${pass ? 'not ' : ''}match ${expectedValue}, but received "${actualValue}"`,};},});
nextjs
Erklärung
1
expect.extend({ toHaveHeader(response, headerName, expectedValue) {
Registriert eine benutzerdefinierte Matcher-Funktion bei Vitest oder Jest zur Erweiterung von Test-Assertions.
2
const pass = expectedValue instanceof RegExp ? expectedValue.test(actualValue ?? '') : actualValue === expectedValue;
Prüft, ob der Header-Wert mit einem String-Literal oder einem regulären Ausdruck übereinstimmt.