Packages
@edge-runtime/jest-expect

Edge Runtime Jest Expect

The @edge-runtime/jest-expect package comes with useful Jest matchers (opens in a new tab) to help testing Request and Response instances.

Installation

npm install @edge-runtime/jest-expect

Usage

Add the following in your jest.config.js file:

// See https://jestjs.io/docs/configuration#setupfilesafterenv-array
setupFilesAfterEnv: ['@edge-runtime/jest-expect'],

To include the TypeScript types, add the following in your tsconfig.json file:

// See https://www.typescriptlang.org/tsconfig#include
"include": [
  "node_modules/@edge-runtime/jest-expect"
]

API

.toHaveStatus

It checks for HTTP status code or message correctness:

const response = new Response('OK')
 
expect(response).toHaveStatus(200)
expect(response).toHaveStatus('Successful')
expect(response).not.toHaveStatus(201)

.toHaveJSONBody

It checks if an HTTP request/response body is a JSON:

const response = Response.json({ hello: 'world' })
 
expect(response).toHaveJSONBody({ hello: 'world' })
expect(response).not.toHaveJSONBody({ foo: 'baz' })

.toHaveTextBody

It checks if an HTTP request/response body is a text:

const request = new Request('http://example.com', {
  method: 'POST',
  body: 'Hello World',
})
 
expect(request).toHaveTextBody('hello world')
expect(request).not.toHaveTextBody('foo bar')