UNPKG

ape-tmpl

Version:
52 lines (45 loc) 5.44 kB
/** * Bud for mocha test. * @function mochaTestJsBud * @param {object} config - Mocha testcase configuration. * @param {string|string[]} config.src - Source file name pattern. * @param {string} [config.dest] - Destination directory path. * @returns {object} - Bud for mocha testcase. */ 'use strict'; var path = require('path'); var assert = require('assert'); var aglob = require('aglob'); var _tmpl = require('./_tmpl'); /** @lends mochaTestJsBud */ function mochaTestJsBud(config) { var src = config.src; var dest = config.dest || process.cwd(); assert.ok(!!src, 'config.src is required.'); return aglob.sync(src).filter(function (src) { return path.basename(src) !== 'index.js'; }).filter(function (src) { return !/^[\._\-]/.test(path.basename(src)); }).filter(function (src) { try { return !!require.resolve(src); } catch (e) { return false; } }).map(function (src) { var basename = path.basename(src, path.extname(src)); return { force: false, mode: '644', mkdirp: false, tmpl: _tmpl('hbs/mocha_test.js.hbs'), path: path.resolve(dest, basename + '_test.js'), data: { name: basename, relative: path.relative(dest, src) } }; }); } module.exports = mochaTestJsBud; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm1vY2hhX3Rlc3RfanNfYnVkLmpzIl0sIm5hbWVzIjpbInBhdGgiLCJyZXF1aXJlIiwiYXNzZXJ0IiwiYWdsb2IiLCJfdG1wbCIsIm1vY2hhVGVzdEpzQnVkIiwiY29uZmlnIiwic3JjIiwiZGVzdCIsInByb2Nlc3MiLCJjd2QiLCJvayIsInN5bmMiLCJmaWx0ZXIiLCJiYXNlbmFtZSIsInRlc3QiLCJyZXNvbHZlIiwiZSIsIm1hcCIsImV4dG5hbWUiLCJmb3JjZSIsIm1vZGUiLCJta2RpcnAiLCJ0bXBsIiwiZGF0YSIsIm5hbWUiLCJyZWxhdGl2ZSIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7OztBQVNBOztBQUVBLElBQU1BLElBQUksR0FBR0MsT0FBTyxDQUFDLE1BQUQsQ0FBcEI7O0FBQ0EsSUFBTUMsTUFBTSxHQUFHRCxPQUFPLENBQUMsUUFBRCxDQUF0Qjs7QUFDQSxJQUFNRSxLQUFLLEdBQUdGLE9BQU8sQ0FBQyxPQUFELENBQXJCOztBQUNBLElBQU1HLEtBQUssR0FBR0gsT0FBTyxDQUFDLFNBQUQsQ0FBckI7QUFFQTs7O0FBQ0EsU0FBU0ksY0FBVCxDQUF5QkMsTUFBekIsRUFBaUM7QUFDL0IsTUFBTUMsR0FBRyxHQUFHRCxNQUFNLENBQUNDLEdBQW5CO0FBQ0EsTUFBTUMsSUFBSSxHQUFHRixNQUFNLENBQUNFLElBQVAsSUFBZUMsT0FBTyxDQUFDQyxHQUFSLEVBQTVCO0FBQ0FSLEVBQUFBLE1BQU0sQ0FBQ1MsRUFBUCxDQUFVLENBQUMsQ0FBQ0osR0FBWixFQUFpQix5QkFBakI7QUFDQSxTQUFPSixLQUFLLENBQUNTLElBQU4sQ0FBV0wsR0FBWCxFQUNKTSxNQURJLENBQ0csVUFBQ04sR0FBRDtBQUFBLFdBQ05QLElBQUksQ0FBQ2MsUUFBTCxDQUFjUCxHQUFkLE1BQXVCLFVBRGpCO0FBQUEsR0FESCxFQUlKTSxNQUpJLENBSUcsVUFBQ04sR0FBRDtBQUFBLFdBQ04sQ0FBQyxXQUFXUSxJQUFYLENBQWdCZixJQUFJLENBQUNjLFFBQUwsQ0FBY1AsR0FBZCxDQUFoQixDQURLO0FBQUEsR0FKSCxFQU9KTSxNQVBJLENBT0csVUFBQ04sR0FBRCxFQUFTO0FBQ2YsUUFBSTtBQUNGLGFBQU8sQ0FBQyxDQUFDTixPQUFPLENBQUNlLE9BQVIsQ0FBZ0JULEdBQWhCLENBQVQ7QUFDRCxLQUZELENBRUUsT0FBT1UsQ0FBUCxFQUFVO0FBQ1YsYUFBTyxLQUFQO0FBQ0Q7QUFDRixHQWJJLEVBY0pDLEdBZEksQ0FjQSxVQUFDWCxHQUFELEVBQVM7QUFDWixRQUFJTyxRQUFRLEdBQUdkLElBQUksQ0FBQ2MsUUFBTCxDQUFjUCxHQUFkLEVBQW1CUCxJQUFJLENBQUNtQixPQUFMLENBQWFaLEdBQWIsQ0FBbkIsQ0FBZjtBQUNBLFdBQU87QUFDTGEsTUFBQUEsS0FBSyxFQUFFLEtBREY7QUFFTEMsTUFBQUEsSUFBSSxFQUFFLEtBRkQ7QUFHTEMsTUFBQUEsTUFBTSxFQUFFLEtBSEg7QUFJTEMsTUFBQUEsSUFBSSxFQUFFbkIsS0FBSyxDQUFDLHVCQUFELENBSk47QUFLTEosTUFBQUEsSUFBSSxFQUFFQSxJQUFJLENBQUNnQixPQUFMLENBQWFSLElBQWIsRUFBbUJNLFFBQVEsR0FBRyxVQUE5QixDQUxEO0FBTUxVLE1BQUFBLElBQUksRUFBRTtBQUNKQyxRQUFBQSxJQUFJLEVBQUVYLFFBREY7QUFFSlksUUFBQUEsUUFBUSxFQUFFMUIsSUFBSSxDQUFDMEIsUUFBTCxDQUFjbEIsSUFBZCxFQUFvQkQsR0FBcEI7QUFGTjtBQU5ELEtBQVA7QUFXRCxHQTNCSSxDQUFQO0FBNEJEOztBQUVEb0IsTUFBTSxDQUFDQyxPQUFQLEdBQWlCdkIsY0FBakIiLCJzb3VyY2VSb290IjoiLi4vLi4vbGliIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBCdWQgZm9yIG1vY2hhIHRlc3QuXG4gKiBAZnVuY3Rpb24gbW9jaGFUZXN0SnNCdWRcbiAqIEBwYXJhbSB7b2JqZWN0fSBjb25maWcgLSBNb2NoYSB0ZXN0Y2FzZSBjb25maWd1cmF0aW9uLlxuICogQHBhcmFtIHtzdHJpbmd8c3RyaW5nW119IGNvbmZpZy5zcmMgLSBTb3VyY2UgZmlsZSBuYW1lIHBhdHRlcm4uXG4gKiBAcGFyYW0ge3N0cmluZ30gW2NvbmZpZy5kZXN0XSAtIERlc3RpbmF0aW9uIGRpcmVjdG9yeSBwYXRoLlxuICogQHJldHVybnMge29iamVjdH0gLSBCdWQgZm9yIG1vY2hhIHRlc3RjYXNlLlxuICovXG5cbid1c2Ugc3RyaWN0J1xuXG5jb25zdCBwYXRoID0gcmVxdWlyZSgncGF0aCcpXG5jb25zdCBhc3NlcnQgPSByZXF1aXJlKCdhc3NlcnQnKVxuY29uc3QgYWdsb2IgPSByZXF1aXJlKCdhZ2xvYicpXG5jb25zdCBfdG1wbCA9IHJlcXVpcmUoJy4vX3RtcGwnKVxuXG4vKiogQGxlbmRzIG1vY2hhVGVzdEpzQnVkICovXG5mdW5jdGlvbiBtb2NoYVRlc3RKc0J1ZCAoY29uZmlnKSB7XG4gIGNvbnN0IHNyYyA9IGNvbmZpZy5zcmNcbiAgY29uc3QgZGVzdCA9IGNvbmZpZy5kZXN0IHx8IHByb2Nlc3MuY3dkKClcbiAgYXNzZXJ0Lm9rKCEhc3JjLCAnY29uZmlnLnNyYyBpcyByZXF1aXJlZC4nKVxuICByZXR1cm4gYWdsb2Iuc3luYyhzcmMpXG4gICAgLmZpbHRlcigoc3JjKSA9PlxuICAgICAgcGF0aC5iYXNlbmFtZShzcmMpICE9PSAnaW5kZXguanMnXG4gICAgKVxuICAgIC5maWx0ZXIoKHNyYykgPT5cbiAgICAgICEvXltcXC5fXFwtXS8udGVzdChwYXRoLmJhc2VuYW1lKHNyYykpXG4gICAgKVxuICAgIC5maWx0ZXIoKHNyYykgPT4ge1xuICAgICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuICEhcmVxdWlyZS5yZXNvbHZlKHNyYylcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICB9XG4gICAgfSlcbiAgICAubWFwKChzcmMpID0+IHtcbiAgICAgIGxldCBiYXNlbmFtZSA9IHBhdGguYmFzZW5hbWUoc3JjLCBwYXRoLmV4dG5hbWUoc3JjKSlcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGZvcmNlOiBmYWxzZSxcbiAgICAgICAgbW9kZTogJzY0NCcsXG4gICAgICAgIG1rZGlycDogZmFsc2UsXG4gICAgICAgIHRtcGw6IF90bXBsKCdoYnMvbW9jaGFfdGVzdC5qcy5oYnMnKSxcbiAgICAgICAgcGF0aDogcGF0aC5yZXNvbHZlKGRlc3QsIGJhc2VuYW1lICsgJ190ZXN0LmpzJyksXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICBuYW1lOiBiYXNlbmFtZSxcbiAgICAgICAgICByZWxhdGl2ZTogcGF0aC5yZWxhdGl2ZShkZXN0LCBzcmMpXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IG1vY2hhVGVzdEpzQnVkXG4iXX0=