Skip to content

Commit 229b82b

Browse files
committed
Add unit tests for require() handler
1 parent 531be77 commit 229b82b

4 files changed

Lines changed: 31 additions & 9 deletions

File tree

lib/handlebars.js

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -21,15 +21,15 @@ Handlebars.create = create;
2121

2222
module.exports = Handlebars; // instantiate an instance
2323

24-
// Publish a Node.js require() handler for handlebars files
25-
if ((typeof(require) !== "undefined") && require.extensions) {
26-
var extension = function(module, filename) {
27-
var fs = require("fs");
28-
var templateString = fs.readFileSync(filename, 'utf8');
29-
module.exports = Handlebars.compile(templateString);
30-
};
31-
require.extensions[".handlebars"] = extension;
32-
require.extensions[".hbs"] = extension;
24+
// Publish a Node.js require() handler for .handlebars and .hbs files
25+
if (require.extensions) {
26+
var extension = function(module, filename) {
27+
var fs = require("fs");
28+
var templateString = fs.readFileSync(filename, "utf8");
29+
module.exports = Handlebars.compile(templateString);
30+
};
31+
require.extensions[".handlebars"] = extension;
32+
require.extensions[".hbs"] = extension;
3333
}
3434

3535
// BEGIN(BROWSER)

spec/example_1.handlebars

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{{foo}}

spec/example_2.hbs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Hello, {{name}}!

spec/qunit_spec.js

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1475,6 +1475,26 @@ test('GH-375: Unicode line terminators', function() {
14751475
shouldCompileTo('\u2028', {}, '\u2028');
14761476
});
14771477

1478+
test('Load .handlebars files with require()', function() {
1479+
var template = require("./example_1");
1480+
assert.deepEqual(template, require("./example_1.handlebars"));
1481+
1482+
var expected = 'foo\n';
1483+
var result = template({foo: "foo"});
1484+
1485+
equal(result, expected);
1486+
});
1487+
1488+
test('Load .hbs files with require()', function() {
1489+
var template = require("./example_2");
1490+
assert.deepEqual(template, require("./example_2.hbs"));
1491+
1492+
var expected = 'Hello, World!\n';
1493+
var result = template({name: "World"});
1494+
1495+
equal(result, expected);
1496+
});
1497+
14781498
suite('Utils');
14791499

14801500
test('escapeExpression', function() {

0 commit comments

Comments
 (0)