Chandler Moisen

TIL: TestCafe Request Hooks

TIL: TestCafe Request Hooks

Today I learned about intercepting HTTP requests using TestCafe request hooks.

I have recently incorporated writing automated end-to-end tests into my workflow using TestCafe. When writing such tests (or any tests for that matter) you might find yourself in a situation where you need to mock an external service. TestCafe allows mocking of services via its RequestMock class.

Setting up mocks to run before a series of tests is straight forward. For example, if you are testing a UI that is only accessible to authorized users, you can mock out the authorization request as follows:

import { RequestMock, Selector } from 'testcafe'

const authMock = RequestMock()
  .onRequestTo('http://localhost/api/auth')
  .respond({
    token: 'abc123',
  })

fixtures('Profile Page')
  .page('http://localhost:3000/profile')
  .requestHooks(authMock)