Fixtour ·
A fast, lightweight library that helps you load external fixtures into your unit test's environment, especially oriented (but not limited) to Jest.
The why?
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.
Installation
Install Fixtour using yarn
:
yarn add --dev fixtour
Or npm
:
npm install --save-dev fixtour
Usage
Fixtour exposes its API through the Fixtour
object, so you just have to import it:
;
then you should be able to access its whole API.
API
html(string)
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
json(string)
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
clear()
Clears up the document body through document.body.innerHTML = ''
. It is recommended that you run this function in the afterEach
of your test cases.
Fixtourclear;
clearCache()
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;
getCachedFixtures()
Helpful for debugging, returns a object representing all the cached elements.
Fixtour;
readFixture()
Helpful for reading and returning files contents as strings. It reads a file and removes all the unecessary whitespaces.
Fixtour;