load-mocks
v1.0.1
Published
Monkey patch the _load function from require to load a mock, if present.
Downloads
4
Readme
load-mocks
This module basically extends the __mocks__
folder functionality of jest, but outside of the jest
runtime. Likely you'll want to conditionally load this on a test server based on an environmental variable.
What this does
By modifying the _load
function, any module which requires
some other module will first check if there is a mock present for that module. If so, we'll load that mock. If not, we'll load the actual module.
The mock must be placed in a __mocks__
folder in the same folder as the module which needs to load the mock. A module in any other folder will not load the mock, including nested folders. Because of this feature, you can require the original module from the mock of a module. E.g. in __mocks__/fs.js
you can still require('fs')
and get the original fs
built-in module. This is helpful if you only want to mock a portion of a module.
Why would you want to do this?
This isn't intended for use in production apps, but is rather a way to mock certain conditions that can be tested. An application deployed to a test environment, may conditionally load this package so that certain api responses or error conditions may be mocked.
For example, if you depend on an external API you could mock the data fetch and return an error, or some fixture data, from that API instead. This allows you to easily perform an end-to-end test on a test server.