diff options
author | Florian Dold <florian.dold@gmail.com> | 2017-08-14 05:01:11 +0200 |
---|---|---|
committer | Florian Dold <florian.dold@gmail.com> | 2017-08-14 05:02:09 +0200 |
commit | 363723fc84f7b8477592e0105aeb331ec9a017af (patch) | |
tree | 29f92724f34131bac64d6a318dd7e30612e631c7 /node_modules/tslint/lib/test.js | |
parent | 5634e77ad96bfe1818f6b6ee70b7379652e5487f (diff) |
node_modules
Diffstat (limited to 'node_modules/tslint/lib/test.js')
-rw-r--r-- | node_modules/tslint/lib/test.js | 41 |
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)); |