@ekino/smuggler
v1.0.0
Published
An easy way to manage Nock mocks on a running Node application.
Downloads
6
Readme
@ekino/smuggler
This library aims to provide a simple way to handle HTTP mock declarations through Nock.
It has been thought as a simple component to load mock definitions from a directory. Then, the mocks could get activated on demand.
For instance, an express/koa middle could look for a x-mock-id
header and when found load the mock associated with this id.
Mock definitions
For now, only js
files could get imported, but we'll improve that in the future!
JavaScript
const nock = require('nock')
module.exports = {
id: 'mock-id',
groupId: 'optional-mock-id',
declareMock: () => {
nock('http://foo.bar').get('/').reply(200)
}
}
Initializing
In order to initialize the MockManager
(we'll talk about it right after), you just need to call the initialize
method like so:
const { initialize } = require('@ekino/smuggler')
var mockManager = initialize()
By default, this function will look for a __mocks__
directory in the current directory and load any js
file.
If you want to modify that, just pass in custom options:
const { initialize } = require('@ekino/smuggler')
var mockManager = initialize({
baseDirectory: '/absolute/path',
mocksDirectory: 'mocks-directory-name',
extensions: ['js']
})
The MockManager
It's the only component you should worry about as it's the one which will allow you to interact with the loaded definitions.
MockManager#activateMock
It looks for a mock with the given id
and loads it if it has been found.
mockManager.activateMock('mock-id')
MockManager#activateMocksGroup
It looks for every mock with the given group-id
and loads them all.
mockManager.activateMocksGroup('group-id')
MockManager#listActiveMocks
It lists all active mocks known to nock
as a string array (see nock.activeMocks()).
mockManager.listActiveMocks()
MockManager#listPendingMocks
It lists all pending mocks known to nock
as a string array (see nock.pendingMocks()).
mockManager.listPendingMocks()
MockManager#checkNoPendingMocks
It looks at nock pending mocks and if there's at least one it throws an error.
mockManager.checkNoPendingMocks()
MockManager#resetMocks
It will clean nock from any mocks (see nock.cleanAll() and nock.restore()).
mockManager.resetMocks()
Examples
You can find examples of usage in the examples
directory.