Skip to content

Commit

Permalink
Allow JavaScript views to have the .cjs suffix.
Browse files Browse the repository at this point in the history
eobrain authored and phillipj committed Dec 30, 2019
1 parent 70d3e7e commit aaaa94f
Showing 5 changed files with 29 additions and 3 deletions.
3 changes: 2 additions & 1 deletion bin/mustache
Original file line number Diff line number Diff line change
@@ -131,7 +131,8 @@ function isStdin (view) {
}

function isJsFile (view) {
return path.extname(view) === '.js';
var extension = path.extname(view);
return extension === '.js' || extension === '.cjs';
}

function wasNotFound (err) {
3 changes: 3 additions & 0 deletions test/_files/cli.cjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
module.exports = {
name: 'LeBron'
};
3 changes: 3 additions & 0 deletions test/_files/cli.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
module.exports = {
name: 'LeBron'
};
18 changes: 18 additions & 0 deletions test/cli-test.js
Original file line number Diff line number Diff line change
@@ -76,6 +76,24 @@ describe('Mustache CLI', function () {
});
});

it('can handle view written in JavaScript with .js suffix', function (done) {
exec('bin/mustache test/_files/cli.js test/_files/cli.mustache', function (err, stdout, stderr) {
assert.equal(err, null);
assert.equal(stderr, '');
assert.equal(stdout, expectedOutput);
done();
});
});

it('can handle view written in JavaScript with .cjs suffix', function (done) {
exec('bin/mustache test/_files/cli.cjs test/_files/cli.mustache', function (err, stdout, stderr) {
assert.equal(err, null);
assert.equal(stderr, '');
assert.equal(stdout, expectedOutput);
done();
});
});

it('writes rendered template into the file specified by the third argument', function (done) {
var outputFile = 'test/_files/cli_output.txt';
exec('bin/mustache test/_files/cli.json test/_files/cli.mustache ' + outputFile, function (err, stdout, stderr) {
5 changes: 3 additions & 2 deletions test/render-helper.js
Original file line number Diff line number Diff line change
@@ -13,6 +13,7 @@ function getContents (testName, ext) {

function getView (testName) {
var view = getContents(testName, 'js');
if (!view) view = getContents(testName, 'cjs');
if (!view) throw new Error('Cannot find view for test "' + testName + '"');
return view;
}
@@ -34,9 +35,9 @@ if (testToRun) {
testNames = testToRun.split(',');
} else {
testNames = fs.readdirSync(_files).filter(function (file) {
return (/\.js$/).test(file);
return (/\.c?js$/).test(file);
}).map(function (file) {
return path.basename(file).replace(/\.js$/, '');
return path.basename(file).replace(/\.c?js$/, '');
});
}

0 comments on commit aaaa94f

Please sign in to comment.