11 function getConsoleMethod(logMethodName) {
12 if (logMethodName === 'debug') {
15 return console[logMethodName];
19 define(['../lib/loglevel'], function(log) {
20 var originalConsole = window.console;
22 describe("Basic log levels changing tests:", function() {
23 beforeEach(function() {
26 for (var ii = 0; ii < logMethods.length; ii++) {
27 window.console[logMethods[ii]] = jasmine.createSpy(logMethods[ii]);
30 window.console.log = jasmine.createSpy('log');
33 afterEach(function() {
34 window.console = originalConsole;
37 describe("log.enableAll()", function() {
38 it("enables all log methods", function() {
41 for (var ii = 0; ii < logMethods.length; ii++) {
42 var method = logMethods[ii];
43 log[method]("a log message");
45 expect(getConsoleMethod(method)).toHaveBeenCalled();
50 describe("log.disableAll()", function() {
51 it("disables all log methods", function() {
52 log.disableAll(false);
54 for (var ii = 0; ii < logMethods.length; ii++) {
55 var method = logMethods[ii];
56 log[method]("a log message");
58 expect(getConsoleMethod(method)).not.toHaveBeenCalled();
63 describe("log.setLevel() throws errors if given", function() {
64 it("no level argument", function() {
67 }).toThrow("log.setLevel() called with invalid level: undefined");
70 it("a null level argument", function() {
73 }).toThrow("log.setLevel() called with invalid level: null");
76 it("an undefined level argument", function() {
78 log.setLevel(undefined);
79 }).toThrow("log.setLevel() called with invalid level: undefined");
82 it("an invalid log level index", function() {
85 }).toThrow("log.setLevel() called with invalid level: -1");
88 it("an invalid log level name", function() {
90 log.setLevel("InvalidLevelName");
91 }).toThrow("log.setLevel() called with invalid level: InvalidLevelName");
95 describe("setting log level by name", function() {
96 function itCanSetLogLevelTo(level) {
97 it("can set log level to " + level, function() {
98 log.setLevel(level, false);
100 log[level]("log message");
101 expect(getConsoleMethod(level)).toHaveBeenCalled();
105 itCanSetLogLevelTo("trace");
106 itCanSetLogLevelTo("debug");
107 itCanSetLogLevelTo("info");
108 itCanSetLogLevelTo("warn");
109 itCanSetLogLevelTo("error");
112 describe("log level settings", function() {
113 describe("log.trace", function() {
114 it("is enabled at trace level", function() {
115 log.setLevel(log.levels.TRACE);
117 log.trace("a log message");
118 expect(console.trace).toHaveBeenCalled();
121 it("is disabled at debug level", function() {
122 log.setLevel(log.levels.DEBUG);
124 log.trace("a log message");
125 expect(console.trace).not.toHaveBeenCalled();
128 it("is disabled at silent level", function() {
129 log.setLevel(log.levels.SILENT);
131 log.trace("a log message");
132 expect(console.trace).not.toHaveBeenCalled();
136 describe("log.debug", function() {
137 it("is enabled at trace level", function() {
138 log.setLevel(log.levels.TRACE);
140 log.debug("a log message");
141 expect(console.log).toHaveBeenCalled();
144 it("is enabled at debug level", function() {
145 log.setLevel(log.levels.DEBUG);
147 log.debug("a log message");
148 expect(console.log).toHaveBeenCalled();
151 it("is disabled at info level", function() {
152 log.setLevel(log.levels.INFO);
154 log.debug("a log message");
155 expect(console.log).not.toHaveBeenCalled();
158 it("is disabled at silent level", function() {
159 log.setLevel(log.levels.SILENT);
161 log.debug("a log message");
162 expect(console.log).not.toHaveBeenCalled();
166 describe("log.log", function() {
167 it("is enabled at trace level", function() {
168 log.setLevel(log.levels.TRACE);
170 log.log("a log message");
171 expect(console.log).toHaveBeenCalled();
174 it("is enabled at debug level", function() {
175 log.setLevel(log.levels.DEBUG);
177 log.log("a log message");
178 expect(console.log).toHaveBeenCalled();
181 it("is disabled at info level", function() {
182 log.setLevel(log.levels.INFO);
184 log.log("a log message");
185 expect(console.log).not.toHaveBeenCalled();
188 it("is disabled at silent level", function() {
189 log.setLevel(log.levels.SILENT);
191 log.log("a log message");
192 expect(console.log).not.toHaveBeenCalled();
196 describe("log.info", function() {
197 it("is enabled at debug level", function() {
198 log.setLevel(log.levels.DEBUG);
200 log.info("a log message");
201 expect(console.info).toHaveBeenCalled();
204 it("is enabled at info level", function() {
205 log.setLevel(log.levels.INFO);
207 log.info("a log message");
208 expect(console.info).toHaveBeenCalled();
211 it("is disabled at warn level", function() {
212 log.setLevel(log.levels.WARN);
214 log.info("a log message");
215 expect(console.info).not.toHaveBeenCalled();
218 it("is disabled at silent level", function() {
219 log.setLevel(log.levels.SILENT);
221 log.info("a log message");
222 expect(console.info).not.toHaveBeenCalled();
226 describe("log.warn", function() {
227 it("is enabled at info level", function() {
228 log.setLevel(log.levels.INFO);
230 log.warn("a log message");
231 expect(console.warn).toHaveBeenCalled();
234 it("is enabled at warn level", function() {
235 log.setLevel(log.levels.WARN);
237 log.warn("a log message");
238 expect(console.warn).toHaveBeenCalled();
241 it("is disabled at error level", function() {
242 log.setLevel(log.levels.ERROR);
244 log.warn("a log message");
245 expect(console.warn).not.toHaveBeenCalled();
248 it("is disabled at silent level", function() {
249 log.setLevel(log.levels.SILENT);
251 log.warn("a log message");
252 expect(console.warn).not.toHaveBeenCalled();
256 describe("log.error", function() {
257 it("is enabled at warn level", function() {
258 log.setLevel(log.levels.WARN);
260 log.error("a log message");
261 expect(console.error).toHaveBeenCalled();
264 it("is enabled at error level", function() {
265 log.setLevel(log.levels.ERROR);
267 log.error("a log message");
268 expect(console.error).toHaveBeenCalled();
271 it("is disabled at silent level", function() {
272 log.setLevel(log.levels.SILENT);
274 log.error("a log message");
275 expect(console.error).not.toHaveBeenCalled();