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();
 | |
|                 });
 | |
|             });
 | |
|         });
 | |
|     });
 | |
| });
 | |
| 
 |