1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 |
|
8 |
|
9 |
|
10 | 'use strict'
|
11 |
|
12 | const path = require('path')
|
13 | const assert = require('assert')
|
14 | const aglob = require('aglob')
|
15 | const _tmpl = require('./_tmpl')
|
16 |
|
17 |
|
18 | function mochaTestJsBud (config) {
|
19 | const src = config.src
|
20 | const dest = config.dest || process.cwd()
|
21 | assert.ok(!!src, 'config.src is required.')
|
22 | return aglob.sync(src)
|
23 | .filter((src) =>
|
24 | path.basename(src) !== 'index.js'
|
25 | )
|
26 | .filter((src) =>
|
27 | !/^[\._\-]/.test(path.basename(src))
|
28 | )
|
29 | .filter((src) => {
|
30 | try {
|
31 | return !!require.resolve(src)
|
32 | } catch (e) {
|
33 | return false
|
34 | }
|
35 | })
|
36 | .map((src) => {
|
37 | let basename = path.basename(src, path.extname(src))
|
38 | return {
|
39 | force: false,
|
40 | mode: '644',
|
41 | mkdirp: false,
|
42 | tmpl: _tmpl('hbs/mocha_test.js.hbs'),
|
43 | path: path.resolve(dest, basename + '_test.js'),
|
44 | data: {
|
45 | name: basename,
|
46 | relative: path.relative(dest, src)
|
47 | }
|
48 | }
|
49 | })
|
50 | }
|
51 |
|
52 | module.exports = mochaTestJsBud
|