UNPKG

1.53 kBJavaScriptView Raw
1/**
2 * Bud for mocha test.
3 * @memberof module:coz-tmpl/lib
4 * @function mochaTestJsBud
5 * @param {object} config - Mocha testcase configuration.
6 * @param {string|string[]} config.src - Source file name pattern.
7 * @param {string} [config.dest] - Destination directory path.
8 * @returns {module:coz-bud/lib~Bud} - Bud for mocha testcase.
9 */
10
11"use strict";
12
13var path = require('path'),
14 assert = require('assert'),
15 cozBud = require('coz-bud'),
16 _expandGlob = require('./_expand_glob'),
17 _isModule = require('./_is_module'),
18 _tmpl = require('./_tmpl');
19
20/** @lends mochaTestJsBud */
21function mochaTestJsBud(config) {
22 var src = config.src,
23 dest = config.dest || process.cwd();
24 assert.ok(!!src, 'config.src is required.');
25 return _expandGlob(src)
26 .filter(function (src) {
27 return path.basename(src) !== 'index.js';
28 })
29 .filter(function (src) {
30 return !/^[\._\-]/.test(path.basename(src));
31 })
32 .filter(_isModule)
33 .map(function (src) {
34 var basename = path.basename(src, path.extname(src));
35 return cozBud({
36 force: false,
37 mode: '644',
38 mkdirp: false,
39 tmpl: _tmpl('mocha_test.js.hbs'),
40 path: path.resolve(dest, basename + '_test.js'),
41 data: {
42 name: basename,
43 relative: path.relative(dest, src)
44 }
45 });
46 });
47}
48
49module.exports = mochaTestJsBud;
\No newline at end of file