aboutsummaryrefslogtreecommitdiff
path: root/node_modules/tslint/lib/test.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/tslint/lib/test.js')
-rw-r--r--node_modules/tslint/lib/test.js41
1 files changed, 20 insertions, 21 deletions
diff --git a/node_modules/tslint/lib/test.js b/node_modules/tslint/lib/test.js
index 88c2fa764..bca549b33 100644
--- a/node_modules/tslint/lib/test.js
+++ b/node_modules/tslint/lib/test.js
@@ -25,22 +25,23 @@ var semver = require("semver");
var ts = require("typescript");
var rule_1 = require("./language/rule/rule");
var Linter = require("./linter");
-var parse = require("./test/parse");
var utils_1 = require("./utils");
+var parse = require("./verify/parse");
var MARKUP_FILE_EXTENSION = ".lint";
var FIXES_FILE_EXTENSION = ".fix";
function runTests(patterns, rulesDirectory) {
var files = [];
for (var _i = 0, patterns_1 = patterns; _i < patterns_1.length; _i++) {
var pattern = patterns_1[_i];
- files.push.apply(files, glob.sync(pattern + "/tslint.json"));
+ if (path.basename(pattern) !== "tslint.json") {
+ pattern = path.join(pattern, "tslint.json");
+ }
+ files.push.apply(files, glob.sync(pattern));
}
return files.map(function (directory) { return runTest(path.dirname(directory), rulesDirectory); });
}
exports.runTests = runTests;
function runTest(testDirectory, rulesDirectory) {
- // needed to get colors to show up when passing through Grunt
- colors.enabled = true;
var filesToLint = glob.sync(path.join(testDirectory, "**/*" + MARKUP_FILE_EXTENSION));
var tslintConfig = Linter.findConfiguration(path.join(testDirectory, "tslint.json"), "").results;
var tsConfig = path.join(testDirectory, "tsconfig.json");
@@ -62,8 +63,7 @@ function runTest(testDirectory, rulesDirectory) {
var results = { directory: testDirectory, results: {} };
var _loop_1 = function (fileToLint) {
var isEncodingRule = path.basename(testDirectory) === "encoding";
- var fileBasename = path.basename(fileToLint, MARKUP_FILE_EXTENSION);
- var fileCompileName = fileBasename.replace(/\.lint$/, "");
+ var fileCompileName = utils_1.denormalizeWinPath(path.resolve(fileToLint.replace(/\.lint$/, "")));
var fileText = isEncodingRule ? utils_1.readBufferWithDetectedEncoding(fs.readFileSync(fileToLint)) : fs.readFileSync(fileToLint, "utf-8");
var tsVersionRequirement = parse.getTypescriptVersionRequirement(fileText);
if (tsVersionRequirement !== undefined) {
@@ -85,11 +85,11 @@ function runTest(testDirectory, rulesDirectory) {
var program = void 0;
if (hasConfig) {
var compilerHost = {
- fileExists: function () { return true; },
+ fileExists: function (file) { return file === fileCompileName || fs.existsSync(file); },
getCanonicalFileName: function (filename) { return filename; },
- getCurrentDirectory: function () { return ""; },
+ getCurrentDirectory: function () { return process.cwd(); },
getDefaultLibFileName: function () { return ts.getDefaultLibFileName(compilerOptions); },
- getDirectories: function (_path) { return []; },
+ getDirectories: function (dir) { return fs.readdirSync(dir); },
getNewLine: function () { return "\n"; },
getSourceFile: function (filenameToGet) {
var target = compilerOptions.target === undefined ? ts.ScriptTarget.ES5 : compilerOptions.target;
@@ -97,14 +97,11 @@ function runTest(testDirectory, rulesDirectory) {
var fileContent = fs.readFileSync(ts.getDefaultLibFilePath(compilerOptions), "utf8");
return ts.createSourceFile(filenameToGet, fileContent, target);
}
- else if (filenameToGet === fileCompileName) {
- return ts.createSourceFile(fileBasename, fileTextWithoutMarkup, target, true);
+ else if (utils_1.denormalizeWinPath(filenameToGet) === fileCompileName) {
+ return ts.createSourceFile(filenameToGet, fileTextWithoutMarkup, target, true);
}
- else if (fs.existsSync(path.resolve(path.dirname(fileToLint), filenameToGet))) {
- var text = fs.readFileSync(path.resolve(path.dirname(fileToLint), filenameToGet), "utf8");
- return ts.createSourceFile(filenameToGet, text, target, true);
- }
- throw new Error("Couldn't get source file '" + filenameToGet + "'");
+ var text = fs.readFileSync(filenameToGet, "utf8");
+ return ts.createSourceFile(filenameToGet, text, target, true);
},
readFile: function (x) { return x; },
useCaseSensitiveFileNames: function () { return true; },
@@ -120,7 +117,7 @@ function runTest(testDirectory, rulesDirectory) {
};
var linter = new Linter(lintOptions, program);
// Need to use the true path (ending in '.lint') for "encoding" rule so that it can read the file.
- linter.lint(isEncodingRule ? fileToLint : fileBasename, fileTextWithoutMarkup, tslintConfig);
+ linter.lint(isEncodingRule ? fileToLint : fileCompileName, fileTextWithoutMarkup, tslintConfig);
var failures = linter.getResult().failures;
var errorsFromLinter = failures.map(function (failure) {
var startLineAndCharacter = failure.getStartPosition().getLineAndCharacter();
@@ -182,6 +179,8 @@ function consoleTestResultsHandler(testResults) {
}
exports.consoleTestResultsHandler = consoleTestResultsHandler;
function consoleTestResultHandler(testResult) {
+ // needed to get colors to show up when passing through Grunt
+ colors.enabled = true;
var didAllTestsPass = true;
for (var _i = 0, _a = Object.keys(testResult.results); _i < _a.length; _i++) {
var fileName = _a[_i];
@@ -194,8 +193,8 @@ function consoleTestResultHandler(testResult) {
else {
var markupDiffResults = diff.diffLines(results.markupFromMarkup, results.markupFromLinter);
var fixesDiffResults = diff.diffLines(results.fixesFromLinter, results.fixesFromMarkup);
- var didMarkupTestPass = !markupDiffResults.some(function (diff) { return diff.added === true || diff.removed === true; });
- var didFixesTestPass = !fixesDiffResults.some(function (diff) { return diff.added === true || diff.removed === true; });
+ var didMarkupTestPass = !markupDiffResults.some(function (hunk) { return hunk.added === true || hunk.removed === true; });
+ var didFixesTestPass = !fixesDiffResults.some(function (hunk) { return hunk.added === true || hunk.removed === true; });
if (didMarkupTestPass && didFixesTestPass) {
console.log(colors.green(" Passed"));
}
@@ -222,10 +221,10 @@ function displayDiffResults(diffResults, extension) {
for (var _i = 0, diffResults_1 = diffResults; _i < diffResults_1.length; _i++) {
var diffResult = diffResults_1[_i];
var color = colors.grey;
- if (diffResult.added === true) {
+ if (diffResult.added) {
color = colors.green.underline;
}
- else if (diffResult.removed === true) {
+ else if (diffResult.removed) {
color = colors.red.underline;
}
process.stdout.write(color(diffResult.value));