/
index.js
66 lines (54 loc) · 1.57 KB
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
'use strict';
const path = require('path');
const stringUtil = require('ember-cli-string-utils');
const useTestFrameworkDetector = require('../test-framework-detector');
const maybePolyfillTypeScriptBlueprints = require('../-maybe-polyfill-typescript-blueprints');
const { modulePrefixForProject } = require('../-utils');
module.exports = useTestFrameworkDetector({
description: 'Generates a route unit test.',
shouldTransformTypeScript: true,
init() {
this._super && this._super.init.apply(this, arguments);
maybePolyfillTypeScriptBlueprints(this);
},
availableOptions: [
{
name: 'reset-namespace',
type: Boolean,
},
],
fileMapTokens: function () {
return {
__root__() {
return 'tests';
},
__testType__() {
return 'unit';
},
__test__: function (options) {
let moduleName = options.locals.moduleName;
if (options.pod) {
moduleName = 'route';
}
return `${moduleName}-test`;
},
__path__: function (options) {
if (options.pod) {
return path.join(options.podPath, options.locals.moduleName);
}
return 'routes';
},
};
},
locals: function (options) {
let moduleName = options.entity.name;
if (options.resetNamespace) {
moduleName = moduleName.split('/').pop();
}
return {
modulePrefix: modulePrefixForProject(options.project),
friendlyTestDescription: ['Unit', 'Route', options.entity.name].join(' | '),
moduleName: stringUtil.dasherize(moduleName),
};
},
});