On this page

Access to an instance with :

const mockAgent = new MockAgent({ enableCallHistory: true })
mockAgent.getCallHistory()

// or
const mockAgent = new MockAgent()
mockAgent.enableMockHistory()
mockAgent.getCallHistory()

a MockCallHistory instance implements a Symbol.iterator letting you iterate on registered logs :

for (const log of mockAgent.getCallHistory()) {
  //...
}

const array: Array<MockCallHistoryLog> = [...mockAgent.getCallHistory()]
const set: Set<MockCallHistoryLog> = new Set(mockAgent.getCallHistory())

Clear all MockCallHistoryLog registered. This is automatically done when calling mockAgent.close()

mockAgent.clearCallHistory()
// same as
mockAgent.getCallHistory()?.clear()

Get all MockCallHistoryLog registered as an array

Get the first MockCallHistoryLog registered or undefined

Get the last MockCallHistoryLog registered or undefined

Get the nth MockCallHistoryLog registered or undefined

Filter MockCallHistoryLog by protocol.

more details for the first parameter can be found here

mockAgent.getCallHistory()?.filterCallsByProtocol(/https/)
mockAgent.getCallHistory()?.filterCallsByProtocol('https:')

Filter MockCallHistoryLog by host.

more details for the first parameter can be found here

mockAgent.getCallHistory()?.filterCallsByHost(/localhost/)
mockAgent.getCallHistory()?.filterCallsByHost('localhost:3000')

Filter MockCallHistoryLog by port.

more details for the first parameter can be found here

mockAgent.getCallHistory()?.filterCallsByPort(/3000/)
mockAgent.getCallHistory()?.filterCallsByPort('3000')
mockAgent.getCallHistory()?.filterCallsByPort('')

Filter MockCallHistoryLog by origin.

more details for the first parameter can be found here

mockAgent.getCallHistory()?.filterCallsByOrigin(/http:\/\/localhost:3000/)
mockAgent.getCallHistory()?.filterCallsByOrigin('http://localhost:3000')

Filter MockCallHistoryLog by path.

more details for the first parameter can be found here

mockAgent.getCallHistory()?.filterCallsByPath(/api\/v1\/graphql/)
mockAgent.getCallHistory()?.filterCallsByPath('/api/v1/graphql')

Filter MockCallHistoryLog by hash.

more details for the first parameter can be found here

mockAgent.getCallHistory()?.filterCallsByPath(/hash/)
mockAgent.getCallHistory()?.filterCallsByPath('#hash')

Filter MockCallHistoryLog by fullUrl. fullUrl contains protocol, host, port, path, hash, and query params

more details for the first parameter can be found here

mockAgent.getCallHistory()?.filterCallsByFullUrl(/https:\/\/localhost:3000\/\?query=value#hash/)
mockAgent.getCallHistory()?.filterCallsByFullUrl('https://localhost:3000/?query=value#hash')

Filter MockCallHistoryLog by method.

more details for the first parameter can be found here

mockAgent.getCallHistory()?.filterCallsByMethod(/POST/)
mockAgent.getCallHistory()?.filterCallsByMethod('POST')

This class method is a meta function / alias to apply complex filtering in a single way.

Parameters :

  • criteria : the first parameter. a function, regexp or object.
    • function : filter MockCallHistoryLog when the function returns false
    • regexp : filter MockCallHistoryLog when the regexp does not match on MockCallHistoryLog.toString() (see)
    • object : an object with MockCallHistoryLog properties as keys to apply multiple filters. each values are a filter parameter
  • options : the second parameter. an object.
    • options.operator : 'AND' or 'OR' (default 'OR'). Used only if criteria is an object. see below
mockAgent.getCallHistory()?.filterCalls((log) => log.hash === value && log.headers?.['authorization'] !== undefined)
mockAgent.getCallHistory()?.filterCalls(/"data": "{ "errors": "wrong body" }"/)

// returns an Array of MockCallHistoryLog which all have
// - a hash containing my-hash
// - OR
// - a path equal to /endpoint
mockAgent.getCallHistory()?.filterCalls({ hash: /my-hash/, path: '/endpoint' })

// returns an Array of MockCallHistoryLog which all have
// - a hash containing my-hash
// - AND
// - a path equal to /endpoint
mockAgent.getCallHistory()?.filterCalls({ hash: /my-hash/, path: '/endpoint' }, { operator: 'AND' })

Can be :

  • string. MockCallHistoryLog filtered if value !== parameterValue
  • null. MockCallHistoryLog filtered if value !== parameterValue
  • undefined. MockCallHistoryLog filtered if value !== parameterValue
  • regexp. MockCallHistoryLog filtered if !parameterValue.test(value)