add tests and fix log to console feature

This commit is contained in:
Luke Page
2013-08-21 20:35:32 +01:00
parent 6c5072ebbc
commit 03a7183637
6 changed files with 55 additions and 10 deletions

View File

@@ -523,12 +523,11 @@ function removeErrorConsole(path) {
}
function errorConsole(e, rootHref) {
var template = '{line}\n{content}';
var template = '{line} {content}';
var filename = e.filename || rootHref;
var filenameNoPath = filename.match(/([^\/]+(\?.*)?)$/)[1];
content = (e.type || "Syntax") + "Error: " + (e.message || 'There is an error in your .less file') +
"'" + filename + "'";
var errors = [];
var content = (e.type || "Syntax") + "Error: " + (e.message || 'There is an error in your .less file') +
" in " + filename + " ";
var errorline = function (e, i, classname) {
if (e.extract[i] !== undefined) {
@@ -547,7 +546,7 @@ function errorConsole(e, rootHref) {
} else if (e.stack) {
content += e.stack;
}
log(content);
console.log(content);
}
function errorHTML(e, rootHref) {

View File

@@ -39,6 +39,7 @@ createTestRunnerPage("", /javascript|urls/, "main");
createTestRunnerPage("", null, "legacy", "legacy");
createTestRunnerPage("", /javascript/, "errors", "errors");
createTestRunnerPage("", null, "no-js-errors", "no-js-errors");
createTestRunnerPage("browser", null, "console-errors", "console-errors");
createTestRunnerPage("browser", null, "browser");
createTestRunnerPage("browser", null, "relative-urls", "relative-urls");
createTestRunnerPage("browser", null, "rootpath", "rootpath");

View File

@@ -13,8 +13,8 @@ var testLessEqualsInDocument = function() {
testLessInDocument(testSheet);
};
var testLessErrorsInDocument = function() {
testLessInDocument(testErrorSheet);
var testLessErrorsInDocument = function(isConsole) {
testLessInDocument(isConsole ? testErrorSheetConsole : testErrorSheet);
};
var testLessInDocument = function(testFunc) {
@@ -43,7 +43,7 @@ var testSheet = function(sheet) {
runs(function() {
// use sheet to do testing
expect(lessOutput).toEqual(expectedOutput.text);
expect(expectedOutput.text).toEqual(lessOutput);
});
});
};
@@ -76,7 +76,7 @@ var testErrorSheet = function(sheet) {
.replace("{pathrel}", "")
.replace("{pathhref}", "http://localhost:8081/less/errors/")
.replace("{404status}", " (404)");
expect(actualErrorMsg).toEqual(errorTxt);
expect(errorTxt).toEqual(actualErrorMsg);
if (errorTxt == actualErrorMsg) {
actualErrorElement.style.display = "none";
}
@@ -84,6 +84,41 @@ var testErrorSheet = function(sheet) {
});
};
var testErrorSheetConsole = function(sheet) {
it(sheet.id + " should match an error", function() {
var lessHref = sheet.href,
id = sheet.id.replace(/^original-less:/, "less-error-message:"),
errorHref = lessHref.replace(/.less$/, ".txt"),
errorFile = loadFile(errorHref),
actualErrorElement = document.getElementById(id),
actualErrorMsg = logMessages[logMessages.length - 1];
describe("the error", function() {
expect(actualErrorElement).toBe(null);
});
/*actualErrorMsg = actualErrorElement.innerText
.replace(/\n\d+/g, function(lineNo) { return lineNo + " "; })
.replace(/\n\s*in /g, " in ")
.replace("\n\n", "\n");*/
waitsFor(function() {
return errorFile.loaded;
}, "failed to load expected outout", 10000);
runs(function() {
var errorTxt = errorFile.text
.replace("{path}", "")
.replace("{pathrel}", "")
.replace("{pathhref}", "http://localhost:8081/browser/less/")
.replace("{404status}", " (404)")
.trim();
expect(errorTxt).toEqual(actualErrorMsg);
});
});
};
var loadFile = function(href) {
var request = new XMLHttpRequest(),
response = { loaded: false, text: ""};

View File

@@ -0,0 +1,3 @@
.a {
prop: (3 / #fff);
}

View File

@@ -0,0 +1,2 @@
OperationError: Can't substract or divide a color from a number in {pathhref}console-errors/test-error.less on line null, column 0:
1 prop: (3 / #fff);

View File

@@ -0,0 +1,5 @@
less.errorReporting = 'console';
describe("less.js error reporting console test", function() {
testLessErrorsInDocument(true);
});