57 lines
1.3 KiB
JavaScript
57 lines
1.3 KiB
JavaScript
import test from "ava";
|
||
import EleventyErrorHandler from "../src/EleventyErrorHandler";
|
||
|
||
let output = [];
|
||
|
||
test.beforeEach(t => {
|
||
output = [];
|
||
|
||
EleventyErrorHandler.isChalkEnabled = false;
|
||
EleventyErrorHandler.logger = {
|
||
log: function(str) {
|
||
output.push(str);
|
||
},
|
||
warn: function(str) {
|
||
output.push(str);
|
||
},
|
||
error: function(str) {
|
||
output.push(str);
|
||
}
|
||
};
|
||
});
|
||
|
||
test.afterEach(t => {
|
||
EleventyErrorHandler.isChalkEnabled = true;
|
||
EleventyErrorHandler.logger = null;
|
||
});
|
||
|
||
test("Disable chalk", t => {
|
||
EleventyErrorHandler.isChalkEnabled = false;
|
||
t.is(EleventyErrorHandler.isChalkEnabled, false);
|
||
});
|
||
|
||
test("Log a warning, error", t => {
|
||
EleventyErrorHandler.warn(new Error("Test warning"), "Hello");
|
||
|
||
let expected = `Hello: (more in DEBUG output)
|
||
> Test warning
|
||
|
||
\`Error\` was thrown:
|
||
Error: Test warning`;
|
||
t.is(output.join("\n").substr(0, expected.length), expected);
|
||
|
||
// normally this would be multiple tests but we do this garbage because
|
||
// tests run async and it doesn’t work with the static methods in
|
||
// EleventyErrorHandler
|
||
output = [];
|
||
|
||
EleventyErrorHandler.error(new Error("Test error"), "It’s me");
|
||
|
||
expected = `It’s me: (more in DEBUG output)
|
||
> Test error
|
||
|
||
\`Error\` was thrown:
|
||
Error: Test error`;
|
||
t.is(output.join("\n").substr(0, expected.length), expected);
|
||
});
|