forked from projectmoon/tenebrous-dicebot
282 lines
9.1 KiB
JavaScript
282 lines
9.1 KiB
JavaScript
|
"use strict";
|
||
|
|
||
|
var logMethods = [
|
||
|
"trace",
|
||
|
"debug",
|
||
|
"info",
|
||
|
"warn",
|
||
|
"error"
|
||
|
];
|
||
|
|
||
|
function getConsoleMethod(logMethodName) {
|
||
|
if (logMethodName === 'debug') {
|
||
|
return console.log;
|
||
|
} else {
|
||
|
return console[logMethodName];
|
||
|
}
|
||
|
}
|
||
|
|
||
|
define(['../lib/loglevel'], function(log) {
|
||
|
var originalConsole = window.console;
|
||
|
|
||
|
describe("Basic log levels changing tests:", function() {
|
||
|
beforeEach(function() {
|
||
|
window.console = {};
|
||
|
|
||
|
for (var ii = 0; ii < logMethods.length; ii++) {
|
||
|
window.console[logMethods[ii]] = jasmine.createSpy(logMethods[ii]);
|
||
|
}
|
||
|
|
||
|
window.console.log = jasmine.createSpy('log');
|
||
|
});
|
||
|
|
||
|
afterEach(function() {
|
||
|
window.console = originalConsole;
|
||
|
});
|
||
|
|
||
|
describe("log.enableAll()", function() {
|
||
|
it("enables all log methods", function() {
|
||
|
log.enableAll(false);
|
||
|
|
||
|
for (var ii = 0; ii < logMethods.length; ii++) {
|
||
|
var method = logMethods[ii];
|
||
|
log[method]("a log message");
|
||
|
|
||
|
expect(getConsoleMethod(method)).toHaveBeenCalled();
|
||
|
}
|
||
|
});
|
||
|
});
|
||
|
|
||
|
describe("log.disableAll()", function() {
|
||
|
it("disables all log methods", function() {
|
||
|
log.disableAll(false);
|
||
|
|
||
|
for (var ii = 0; ii < logMethods.length; ii++) {
|
||
|
var method = logMethods[ii];
|
||
|
log[method]("a log message");
|
||
|
|
||
|
expect(getConsoleMethod(method)).not.toHaveBeenCalled();
|
||
|
}
|
||
|
});
|
||
|
});
|
||
|
|
||
|
describe("log.setLevel() throws errors if given", function() {
|
||
|
it("no level argument", function() {
|
||
|
expect(function() {
|
||
|
log.setLevel();
|
||
|
}).toThrow("log.setLevel() called with invalid level: undefined");
|
||
|
});
|
||
|
|
||
|
it("a null level argument", function() {
|
||
|
expect(function() {
|
||
|
log.setLevel(null);
|
||
|
}).toThrow("log.setLevel() called with invalid level: null");
|
||
|
});
|
||
|
|
||
|
it("an undefined level argument", function() {
|
||
|
expect(function() {
|
||
|
log.setLevel(undefined);
|
||
|
}).toThrow("log.setLevel() called with invalid level: undefined");
|
||
|
});
|
||
|
|
||
|
it("an invalid log level index", function() {
|
||
|
expect(function() {
|
||
|
log.setLevel(-1);
|
||
|
}).toThrow("log.setLevel() called with invalid level: -1");
|
||
|
});
|
||
|
|
||
|
it("an invalid log level name", function() {
|
||
|
expect(function() {
|
||
|
log.setLevel("InvalidLevelName");
|
||
|
}).toThrow("log.setLevel() called with invalid level: InvalidLevelName");
|
||
|
});
|
||
|
});
|
||
|
|
||
|
describe("setting log level by name", function() {
|
||
|
function itCanSetLogLevelTo(level) {
|
||
|
it("can set log level to " + level, function() {
|
||
|
log.setLevel(level, false);
|
||
|
|
||
|
log[level]("log message");
|
||
|
expect(getConsoleMethod(level)).toHaveBeenCalled();
|
||
|
});
|
||
|
}
|
||
|
|
||
|
itCanSetLogLevelTo("trace");
|
||
|
itCanSetLogLevelTo("debug");
|
||
|
itCanSetLogLevelTo("info");
|
||
|
itCanSetLogLevelTo("warn");
|
||
|
itCanSetLogLevelTo("error");
|
||
|
});
|
||
|
|
||
|
describe("log level settings", function() {
|
||
|
describe("log.trace", function() {
|
||
|
it("is enabled at trace level", function() {
|
||
|
log.setLevel(log.levels.TRACE);
|
||
|
|
||
|
log.trace("a log message");
|
||
|
expect(console.trace).toHaveBeenCalled();
|
||
|
});
|
||
|
|
||
|
it("is disabled at debug level", function() {
|
||
|
log.setLevel(log.levels.DEBUG);
|
||
|
|
||
|
log.trace("a log message");
|
||
|
expect(console.trace).not.toHaveBeenCalled();
|
||
|
});
|
||
|
|
||
|
it("is disabled at silent level", function() {
|
||
|
log.setLevel(log.levels.SILENT);
|
||
|
|
||
|
log.trace("a log message");
|
||
|
expect(console.trace).not.toHaveBeenCalled();
|
||
|
});
|
||
|
});
|
||
|
|
||
|
describe("log.debug", function() {
|
||
|
it("is enabled at trace level", function() {
|
||
|
log.setLevel(log.levels.TRACE);
|
||
|
|
||
|
log.debug("a log message");
|
||
|
expect(console.log).toHaveBeenCalled();
|
||
|
});
|
||
|
|
||
|
it("is enabled at debug level", function() {
|
||
|
log.setLevel(log.levels.DEBUG);
|
||
|
|
||
|
log.debug("a log message");
|
||
|
expect(console.log).toHaveBeenCalled();
|
||
|
});
|
||
|
|
||
|
it("is disabled at info level", function() {
|
||
|
log.setLevel(log.levels.INFO);
|
||
|
|
||
|
log.debug("a log message");
|
||
|
expect(console.log).not.toHaveBeenCalled();
|
||
|
});
|
||
|
|
||
|
it("is disabled at silent level", function() {
|
||
|
log.setLevel(log.levels.SILENT);
|
||
|
|
||
|
log.debug("a log message");
|
||
|
expect(console.log).not.toHaveBeenCalled();
|
||
|
});
|
||
|
});
|
||
|
|
||
|
describe("log.log", function() {
|
||
|
it("is enabled at trace level", function() {
|
||
|
log.setLevel(log.levels.TRACE);
|
||
|
|
||
|
log.log("a log message");
|
||
|
expect(console.log).toHaveBeenCalled();
|
||
|
});
|
||
|
|
||
|
it("is enabled at debug level", function() {
|
||
|
log.setLevel(log.levels.DEBUG);
|
||
|
|
||
|
log.log("a log message");
|
||
|
expect(console.log).toHaveBeenCalled();
|
||
|
});
|
||
|
|
||
|
it("is disabled at info level", function() {
|
||
|
log.setLevel(log.levels.INFO);
|
||
|
|
||
|
log.log("a log message");
|
||
|
expect(console.log).not.toHaveBeenCalled();
|
||
|
});
|
||
|
|
||
|
it("is disabled at silent level", function() {
|
||
|
log.setLevel(log.levels.SILENT);
|
||
|
|
||
|
log.log("a log message");
|
||
|
expect(console.log).not.toHaveBeenCalled();
|
||
|
});
|
||
|
});
|
||
|
|
||
|
describe("log.info", function() {
|
||
|
it("is enabled at debug level", function() {
|
||
|
log.setLevel(log.levels.DEBUG);
|
||
|
|
||
|
log.info("a log message");
|
||
|
expect(console.info).toHaveBeenCalled();
|
||
|
});
|
||
|
|
||
|
it("is enabled at info level", function() {
|
||
|
log.setLevel(log.levels.INFO);
|
||
|
|
||
|
log.info("a log message");
|
||
|
expect(console.info).toHaveBeenCalled();
|
||
|
});
|
||
|
|
||
|
it("is disabled at warn level", function() {
|
||
|
log.setLevel(log.levels.WARN);
|
||
|
|
||
|
log.info("a log message");
|
||
|
expect(console.info).not.toHaveBeenCalled();
|
||
|
});
|
||
|
|
||
|
it("is disabled at silent level", function() {
|
||
|
log.setLevel(log.levels.SILENT);
|
||
|
|
||
|
log.info("a log message");
|
||
|
expect(console.info).not.toHaveBeenCalled();
|
||
|
});
|
||
|
});
|
||
|
|
||
|
describe("log.warn", function() {
|
||
|
it("is enabled at info level", function() {
|
||
|
log.setLevel(log.levels.INFO);
|
||
|
|
||
|
log.warn("a log message");
|
||
|
expect(console.warn).toHaveBeenCalled();
|
||
|
});
|
||
|
|
||
|
it("is enabled at warn level", function() {
|
||
|
log.setLevel(log.levels.WARN);
|
||
|
|
||
|
log.warn("a log message");
|
||
|
expect(console.warn).toHaveBeenCalled();
|
||
|
});
|
||
|
|
||
|
it("is disabled at error level", function() {
|
||
|
log.setLevel(log.levels.ERROR);
|
||
|
|
||
|
log.warn("a log message");
|
||
|
expect(console.warn).not.toHaveBeenCalled();
|
||
|
});
|
||
|
|
||
|
it("is disabled at silent level", function() {
|
||
|
log.setLevel(log.levels.SILENT);
|
||
|
|
||
|
log.warn("a log message");
|
||
|
expect(console.warn).not.toHaveBeenCalled();
|
||
|
});
|
||
|
});
|
||
|
|
||
|
describe("log.error", function() {
|
||
|
it("is enabled at warn level", function() {
|
||
|
log.setLevel(log.levels.WARN);
|
||
|
|
||
|
log.error("a log message");
|
||
|
expect(console.error).toHaveBeenCalled();
|
||
|
});
|
||
|
|
||
|
it("is enabled at error level", function() {
|
||
|
log.setLevel(log.levels.ERROR);
|
||
|
|
||
|
log.error("a log message");
|
||
|
expect(console.error).toHaveBeenCalled();
|
||
|
});
|
||
|
|
||
|
it("is disabled at silent level", function() {
|
||
|
log.setLevel(log.levels.SILENT);
|
||
|
|
||
|
log.error("a log message");
|
||
|
expect(console.error).not.toHaveBeenCalled();
|
||
|
});
|
||
|
});
|
||
|
});
|
||
|
});
|
||
|
});
|
||
|
|