A Twitch.tv viewer reward and games system.
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
require('./helper');
var fs = require('fs'); var path = require('path'); var _files = path.join(__dirname, '_files');
function getContents(testName, ext) { return fs.readFileSync(path.join(_files, testName + '.' + ext), 'utf8'); }
function getView(testName) { var view = getContents(testName, 'js'); if (!view) throw new Error('Cannot find view for test "' + testName + '"'); return eval(view); }
function getPartial(testName) { try { return getContents(testName, 'partial'); } catch (e) { // No big deal. Not all tests need to test partial support.
} }
function getTest(testName) { var test = {}; test.view = getView(testName); test.template = getContents(testName, 'mustache'); test.partial = getPartial(testName); test.expect = getContents(testName, 'txt'); return test; }
// You can put the name of a specific test to run in the TEST environment
// variable (e.g. TEST=backslashes vows test/render-test.js)
var testToRun = process.env.TEST;
var testNames; if (testToRun) { testNames = [testToRun]; } else { testNames = fs.readdirSync(_files).filter(function (file) { return (/\.js$/).test(file); }).map(function (file) { return path.basename(file).replace(/\.js$/, ''); }); }
describe('Mustache.render', function () { beforeEach(function () { Mustache.clearCache(); });
testNames.forEach(function (testName) { var test = getTest(testName);
it('knows how to render ' + testName, function () { var output; if (test.partial) { output = Mustache.render(test.template, test.view, { partial: test.partial }); } else { output = Mustache.render(test.template, test.view); }
assert.equal(output, test.expect); }); }); });
|