Skip to content

Latest commit

 

History

History
197 lines (132 loc) · 5.5 KB

MockCallHistory.md

File metadata and controls

197 lines (132 loc) · 5.5 KB

Class: MockCallHistory

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())

class methods

clear

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

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

calls

Get all MockCallHistoryLog registered as an array

mockAgent.getCallHistory()?.calls()

firstCall

Get the first MockCallHistoryLog registered or undefined

mockAgent.getCallHistory()?.firstCall()

lastCall

Get the last MockCallHistoryLog registered or undefined

mockAgent.getCallHistory()?.lastCall()

nthCall

Get the nth MockCallHistoryLog registered or undefined

mockAgent.getCallHistory()?.nthCall(3) // the third MockCallHistoryLog registered

filterCallsByProtocol

Filter MockCallHistoryLog by protocol.

more details for the first parameter can be found here

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

filterCallsByHost

Filter MockCallHistoryLog by host.

more details for the first parameter can be found here

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

filterCallsByPort

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('')

filterCallsByOrigin

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')

filterCallsByPath

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')

filterCallsByHash

Filter MockCallHistoryLog by hash.

more details for the first parameter can be found here

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

filterCallsByFullUrl

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')

filterCallsByMethod

Filter MockCallHistoryLog by method.

more details for the first parameter can be found here

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

filterCalls

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' })

filter parameter

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)