More tests for errors

This commit is contained in:
Luke Page
2012-08-11 16:04:32 +01:00
parent b809e8eeb2
commit 22b3ee939d
15 changed files with 57 additions and 15 deletions

View File

@@ -47,24 +47,33 @@ fs.readdirSync('test/less').forEach(function (file) {
fs.readdirSync('test/less/errors').forEach(function (file) {
if (! /\.less/.test(file)) { return }
toCSS('test/less/errors/' + file, function (err, less) {
toCSS('test/less/errors/' + file, function (err, compiledLess) {
var name = path.basename(file, '.less');
fs.readFile(path.join('test/less/errors', name) + '.txt', 'utf-8', function (e, expectedErr) {
sys.print("- error/" + name + ": ")
if (err.message === expectedErr) { sys.print(stylize('OK', 'green')) }
else if (!err) {
sys.print(stylize("No Error", 'red'));
} else {
sys.print(stylize("FAIL", 'yellow') + '\n');
sys.print("- error/" + name + ": ");
if (!err) {
if (compiledLess) {
sys.print(stylize("No Error", 'red'));
} else {
sys.print(stylize("No Error, No Output", 'red'));
}
require('diff').diffLines(expectedErr, err.message).forEach(function(item) {
if(item.added || item.removed) {
sys.print(stylize(item.value, item.added ? 'green' : 'red'));
} else {
sys.print(item.value);
}
})
} else {
var errMessage = less.formatError(err);
if (errMessage === expectedErr) {
sys.print(stylize('OK', 'green'));
} else {
sys.print(stylize("FAIL", 'yellow') + '\n');
require('diff').diffLines(expectedErr, errMessage).forEach(function(item) {
if(item.added || item.removed) {
sys.print(stylize(item.value, item.added ? 'green' : 'red'));
} else {
sys.print(item.value);
}
})
}
}
sys.puts("");
});

View File

@@ -1 +1,2 @@
Syntax Error on line 1
ParseError: Syntax Error on line 1
1 #gaga /* Comment */ span { color: red }

View File

@@ -0,0 +1,3 @@
NameError: .mixin-not-defined is undefined in test\less\errors\mixin-not-defined.less:1:102
10
11 .mixin-not-defined();

View File

@@ -0,0 +1 @@
@import "imports/import-subfolder1.less";

View File

@@ -0,0 +1,3 @@
NameError: .mixin-not-defined is undefined in test\less\errors\mixin-not-defined.less:1:102
10
11 .mixin-not-defined();

View File

@@ -0,0 +1 @@
@import "imports/import-subfolder2.less";

View File

@@ -0,0 +1,3 @@
NameError: .mixin-not-defined is undefined in test\less\errors\mixin-not-defined.less:1:102
10
11 .mixin-not-defined();

View File

@@ -0,0 +1 @@
@import "subfolder/mixin-not-defined.less";

View File

@@ -0,0 +1 @@
@import "subfolder/parse-error-curly-bracket.less";

View File

@@ -0,0 +1 @@
@import "../../mixin-not-defined.less";

View File

@@ -0,0 +1 @@
@import "../../parse-error-curly-bracket.less";

View File

@@ -0,0 +1,11 @@
.error-is-further-on() {
}
.pad-here-to-reproduce-error-in() {
}
.the-import-subfolder-test() {
}
.mixin-not-defined();

View File

@@ -0,0 +1,3 @@
NameError: .mixin-not-defined is undefined
10
11 .mixin-not-defined();

View File

@@ -0,0 +1 @@
}}

View File

@@ -0,0 +1,2 @@
ParseError: Syntax Error on line 1
1 }}