marko-widgets
Version:
Module to support binding of behavior to rendered UI components rendered on the server or client
42 lines (33 loc) • 1.33 kB
JavaScript
var fs = require('fs');
var path = require('path');
var testFilter = require('../util/autotest').testFilter;
module.exports = function(lasso, pluginConfig) {
lasso.dependencies.registerRequireType(
'tests',
{
properties: {
'path': 'string'
},
init: function(lassoContext, callback) {
if (!this.path) {
return callback(new Error('"path" is required for a Marko dependency'));
}
this.path = this.resolvePath(this.path);
callback();
},
read: function(lassoContext, callback) {
var dirname = path.dirname(this.path);
var tests = [];
fs.readdirSync(dirname).forEach((testName) => {
if (!testFilter.isTestEnabled(testName)) {
return;
}
var testFile = path.join(dirname, testName, 'test.js');
if (fs.existsSync(testFile)) {
tests.push( `{ name: ${JSON.stringify(testName)}, test: require('./${testName}/test') }`);
}
});
callback(null, 'module.exports = [\n ' + tests.join(',\n ') + ']');
}
});
};