quixote
Version:
CSS unit and integration testing
40 lines (33 loc) • 1.11 kB
JavaScript
// Copyright (c) 2012-2017 Titanium I.T. LLC. All rights reserved. See LICENSE.txt for details.
;
let eslint = require("eslint");
let linter = new (eslint).Linter();
let fs = require("fs");
exports.validateSource = function(sourceCode, options, description) {
description = description ? description + " " : "";
var messages = linter.verify(sourceCode, options);
var pass = (messages.length === 0);
if (pass) {
process.stdout.write(".");
}
else {
console.log("\n" + description + "failed");
messages.forEach(function(error) {
var code = eslint.SourceCode.splitLines(sourceCode)[error.line - 1];
console.log(error.line + ": " + code.trim());
console.log(" " + error.message);
});
}
return pass;
};
exports.validateFile = function(filename, options) {
var sourceCode = fs.readFileSync(filename, "utf8");
return exports.validateSource(sourceCode, options, filename);
};
exports.validateFileList = function(fileList, options) {
var pass = true;
fileList.forEach(function(filename) {
pass = exports.validateFile(filename, options) && pass;
});
return pass;
};