mirror of
https://github.com/TryGhost/Ghost.git
synced 2025-02-24 23:48:13 -05:00
47 lines
1.3 KiB
JavaScript
47 lines
1.3 KiB
JavaScript
|
const should = require('should');
|
||
|
const helpers = require.main.require('core/frontend/helpers');
|
||
|
const handlebars = require.main.require('core/frontend/services/themes/engine').handlebars;
|
||
|
|
||
|
function compile(templateString) {
|
||
|
const template = handlebars.compile(templateString);
|
||
|
template.with = (locals = {}, globals) => {
|
||
|
return template(locals, globals);
|
||
|
};
|
||
|
|
||
|
return template;
|
||
|
}
|
||
|
|
||
|
describe('{{price}} helper', function () {
|
||
|
before(function () {
|
||
|
handlebars.registerHelper('price', helpers.price);
|
||
|
});
|
||
|
|
||
|
it('throws an error for no provided parameters', function () {
|
||
|
(function compileWith() {
|
||
|
compile('{{price}}')
|
||
|
.with({});
|
||
|
}).should.throw();
|
||
|
});
|
||
|
|
||
|
it('throws an error for undefined parameter', function () {
|
||
|
(function compileWith() {
|
||
|
compile('{{price @dont.exist}}')
|
||
|
.with({});
|
||
|
}).should.throw();
|
||
|
});
|
||
|
|
||
|
it('throws if argument is not a number', function () {
|
||
|
(function compileWith() {
|
||
|
compile('{{price "not_a_number"}}')
|
||
|
.with({});
|
||
|
}).should.throw();
|
||
|
});
|
||
|
|
||
|
it('will format decimal adjusted amount', function () {
|
||
|
compile('{{price 2000}}')
|
||
|
.with({})
|
||
|
.should.equal('20');
|
||
|
});
|
||
|
});
|
||
|
|