Skip to content

Commit 79f626f

Browse files
committed
feat(intelli-espower-loader): add default patterns
1 parent 1370079 commit 79f626f

File tree

5 files changed

+106
-31
lines changed

5 files changed

+106
-31
lines changed

.gitignore

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
# Created by .ignore support plugin (hsz.mobi)
2+
### Node template
3+
# Logs
4+
logs
5+
*.log
6+
7+
# Runtime data
8+
pids
9+
*.pid
10+
*.seed
11+
12+
# Directory for instrumented libs generated by jscoverage/JSCover
13+
lib-cov
14+
15+
# Coverage directory used by tools like istanbul
16+
coverage
17+
18+
# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files)
19+
.grunt
20+
21+
# node-waf configuration
22+
.lock-wscript
23+
24+
# Compiled binary addons (http://nodejs.org/api/addons.html)
25+
build/Release
26+
27+
# Dependency directory
28+
# https://www.npmjs.org/doc/misc/npm-faq.html#should-i-check-my-node_modules-folder-into-git-
29+
node_modules
30+
31+

intelli-espower-loader.js

Lines changed: 3 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,8 @@
11
"use strict";
2-
var fs = require("fs");
3-
var assert = require("assert");
42
var pather = require("path");
5-
var normalizeDir = require("./lib/normalize-dir");
6-
var packageName = require("./package.json").name;
7-
8-
function findPackageDir(paths) {
9-
if (!paths) {
10-
return null;
11-
}
12-
for (var i = 0; i < paths.length; ++i) {
13-
var dir = pather.dirname(paths[i]);
14-
var dirName = dir.split(pather.sep).pop();
15-
if (dirName !== packageName && fs.existsSync(pather.join(dir, 'package.json'))) {
16-
return dir;
17-
}
18-
}
19-
}
20-
function getPackageJSON() {
21-
var dir = findPackageDir(module.paths);
22-
assert(dir, "package.json is not found");
23-
return require(pather.resolve(dir, "package.json"));
24-
}
25-
function getTestDirFromPkg(pkg) {
26-
var directories = pkg.directories;
27-
assert.equal(typeof directories, "object", 'You should setting `directories : { test : "test/" }`');
28-
assert.equal(typeof directories.test, "string", 'You should setting `directories : { test : "test/" }`');
29-
return directories.test;
30-
}
31-
var pkg = getPackageJSON();
32-
var testDirectory = getTestDirFromPkg(pkg);
3+
var pkg = require("./lib/get-package-json")(module.paths);
4+
var testDirectory = require("./lib/get-test-dir")(pkg);
335
require('espower-loader')({
346
cwd: process.cwd(),
35-
pattern: normalizeDir(testDirectory) + "**" + pather.sep + "*.js"
7+
pattern: testDirectory + "**" + pather.sep + "*.js"
368
});

lib/get-package-json.js

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
// LICENSE : MIT
2+
"use strict";
3+
var fs = require("fs");
4+
var assert = require("assert");
5+
var pather = require("path");
6+
var packageName = require("../package.json").name;
7+
8+
function findPackageDir(paths) {
9+
if (!paths) {
10+
return null;
11+
}
12+
for (var i = 0; i < paths.length; ++i) {
13+
var dir = pather.dirname(paths[i]);
14+
var dirName = dir.split(pather.sep).pop();
15+
if (dirName !== packageName && fs.existsSync(pather.join(dir, 'package.json'))) {
16+
return dir;
17+
}
18+
}
19+
}
20+
/**
21+
* @param {string[]} paths the paths for look-up
22+
* @returns {*}
23+
*/
24+
function getPackageJSON(paths) {
25+
var dir = findPackageDir(paths);
26+
assert(dir, "package.json is not found");
27+
return require(pather.resolve(dir, "package.json"));
28+
}
29+
module.exports = getPackageJSON;

lib/get-test-dir.js

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
// LICENSE : MIT
2+
"use strict";
3+
var normalizeDir = require("./normalize-dir");
4+
/**
5+
* Return `dir/` string
6+
* always suffix with `/`
7+
* @param {object} pkg
8+
* @returns {string}
9+
*/
10+
function getTestDirFromPkg(pkg) {
11+
if (pkg &&
12+
typeof pkg.directories === 'object' &&
13+
typeof pkg.directories.test === 'string') {
14+
return normalizeDir(pkg.directories.test);
15+
}
16+
return "test/"; // default value
17+
}
18+
19+
module.exports = getTestDirFromPkg;

test/get-test-dir-test.js

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
// LICENSE : MIT
2+
"use strict";
3+
var assert = require("assert");
4+
var getTestDir = require("../lib/get-test-dir");
5+
describe("get-test-dir-test", function () {
6+
context("when `pkg.directories.test` is not found", function () {
7+
it("should return 'test/'", function () {
8+
var dir = getTestDir({
9+
"directories": {}
10+
});
11+
assert.equal(dir, "test/");
12+
});
13+
});
14+
context("when `pkg.directories.test` is set", function () {
15+
it("should return 'test/'", function () {
16+
var dir = getTestDir({
17+
"directories": {
18+
"test": "user-dir"
19+
}
20+
});
21+
assert.equal(dir, "user-dir/");
22+
});
23+
});
24+
});

0 commit comments

Comments
 (0)