Mustache Transformer for Jest.
Simple module to compile mustache html templates for Jest testing.
Transformer uses hogan.js: https://github.com/twitter/hogan.js/
Jest configuration:
In order to properly configure transformer, the following needs to occur:
Jest configuration
Under transform object, and a mapper to the transformer. Below is an example of mapping html
files.
"transform": { "^.+\\.tsx?$": "ts-jest", "^.+\\.html?$": "mustache-jest" }
Within JS/TS file, the file can be imported as ES6 or commonjs module:
ES6 Module:
import testFileTemplate from './test.html'; function renderHtml(data: Data) { return testFileTemplate(data); }
CommonJS:
const testFileTemplate = require('./test.html').default; function renderHtml(data) { return testFileTemplate(data); }
To use:
Invoke template as a function. The render
function from the compiled template is returned and can be invoked directly.
Example:
test.html
Hello {{name}}! {{#shouldShow}} Welcome! {{/shouldShow}} {{^shouldShow}} GoodBye!! {{/shouldShow}}
test.js
console.log(testFileTemplate({ name: 'Josie', shouldShow: true }));
output:
Hello Josie Welcome!