A fast, lightweight library that helps you load external fixtures into your unit test's environment, especially oriented (but not limited) to Jest.
Usually, jest is a library that is used alongside react, and in react it is very easy to mock your components because of enzyme, but what happens to the other big group of projects that do not use a virtual-dom and keep mocking components with HTML? well, that's why this library exists.
In a nutshell, fixtour is a module that helps you keep your HTML, JSON... fixtures isolated and allows you to inject these into your tests while it is also caching them in the process.
Install Fixtour using yarn
:
yarn add --dev fixtour
Or npm
:
npm install --save-dev fixtour
Fixtour exposes its API through the Fixtour
object, so you just have to import it:
import Fixtour from 'fixtour';
then you should be able to access its whole API.
Receives the route to the file from your project's root, reads the file and injects it into the document.body
.
It caches the content of the files so if you pass the same route twice the second time it will be fetched from the cache.
Fixtour.html('tests/fixtures/test.html')
Receives the route to the file from your project's root, reads the file and returns the content after validating it and parsing it.
It caches the return value in the same way as html()
.
Fixtour.json('tests/fixtures/test.json')
Clears up the document body through document.body.innerHTML = ''
. It is recommended that you run this function in the afterEach
of your test cases.
Fixtour.clear();
Clears up the cache. Especially helpful in cases where you may be storing very large results, however, keep in mind that your unit tests should test small chunks of information so having large files might be a code smell for modules that could be improved.
Fixtour.clearCache();
Helpful for debugging, returns a object representing all the cached elements.
Fixtour.getCachedFixtures();