UNPKG

8.32 kBJavaScriptView Raw
1"use strict";
2
3var logMethods = [
4 "trace",
5 "debug",
6 "info",
7 "warn",
8 "error"
9];
10
11define(['../lib/loglevel'], function(log) {
12 var originalConsole = window.console;
13
14 describe("Basic log levels changing tests:", function() {
15 beforeEach(function() {
16 window.console = {};
17
18 for (var ii = 0; ii < logMethods.length; ii++) {
19 window.console[logMethods[ii]] = jasmine.createSpy(logMethods[ii]);
20 }
21 });
22
23 afterEach(function() {
24 window.console = originalConsole;
25 });
26
27 describe("log.enableAll()", function() {
28 it("enables all log methods", function() {
29 log.enableAll(false);
30
31 for (var ii = 0; ii < logMethods.length; ii++) {
32 var method = logMethods[ii];
33 log[method]("a log message");
34
35 expect(console[method]).toHaveBeenCalled();
36 }
37 });
38 });
39
40 describe("log.disableAll()", function() {
41 it("disables all log methods", function() {
42 log.disableAll(false);
43
44 for (var ii = 0; ii < logMethods.length; ii++) {
45 var method = logMethods[ii];
46 log[method]("a log message");
47
48 expect(console[method]).not.toHaveBeenCalled();
49 }
50 });
51 });
52
53 describe("log.setLevel() throws errors if given", function() {
54 it("no level argument", function() {
55 expect(function() {
56 log.setLevel();
57 }).toThrow("log.setLevel() called with invalid level: undefined");
58 });
59
60 it("a null level argument", function() {
61 expect(function() {
62 log.setLevel(null);
63 }).toThrow("log.setLevel() called with invalid level: null");
64 });
65
66 it("an undefined level argument", function() {
67 expect(function() {
68 log.setLevel(undefined);
69 }).toThrow("log.setLevel() called with invalid level: undefined");
70 });
71
72 it("an invalid log level index", function() {
73 expect(function() {
74 log.setLevel(-1);
75 }).toThrow("log.setLevel() called with invalid level: -1");
76 });
77
78 it("an invalid log level name", function() {
79 expect(function() {
80 log.setLevel("InvalidLevelName");
81 }).toThrow("log.setLevel() called with invalid level: InvalidLevelName");
82 });
83 });
84
85 describe("setting log level by name", function() {
86 function itCanSetLogLevelTo(level) {
87 it("can set log level to " + level, function() {
88 log.setLevel(level, false);
89
90 log[level]("log message");
91 expect(console[level]).toHaveBeenCalled();
92 });
93 }
94
95 itCanSetLogLevelTo("trace");
96 itCanSetLogLevelTo("debug");
97 itCanSetLogLevelTo("info");
98 itCanSetLogLevelTo("warn");
99 itCanSetLogLevelTo("error");
100 });
101
102 describe("log level settings", function() {
103 describe("log.trace", function() {
104 it("is enabled at trace level", function() {
105 log.setLevel(log.levels.TRACE);
106
107 log.trace("a log message");
108 expect(console.trace).toHaveBeenCalled();
109 });
110
111 it("is disabled at debug level", function() {
112 log.setLevel(log.levels.DEBUG);
113
114 log.trace("a log message");
115 expect(console.trace).not.toHaveBeenCalled();
116 });
117
118 it("is disabled at silent level", function() {
119 log.setLevel(log.levels.SILENT);
120
121 log.trace("a log message");
122 expect(console.trace).not.toHaveBeenCalled();
123 });
124 });
125
126 describe("log.debug", function() {
127 it("is enabled at trace level", function() {
128 log.setLevel(log.levels.TRACE);
129
130 log.debug("a log message");
131 expect(console.debug).toHaveBeenCalled();
132 });
133
134 it("is enabled at debug level", function() {
135 log.setLevel(log.levels.DEBUG);
136
137 log.debug("a log message");
138 expect(console.debug).toHaveBeenCalled();
139 });
140
141 it("is disabled at info level", function() {
142 log.setLevel(log.levels.INFO);
143
144 log.debug("a log message");
145 expect(console.debug).not.toHaveBeenCalled();
146 });
147
148 it("is disabled at silent level", function() {
149 log.setLevel(log.levels.SILENT);
150
151 log.debug("a log message");
152 expect(console.debug).not.toHaveBeenCalled();
153 });
154 });
155
156 describe("log.info", function() {
157 it("is enabled at debug level", function() {
158 log.setLevel(log.levels.DEBUG);
159
160 log.info("a log message");
161 expect(console.info).toHaveBeenCalled();
162 });
163
164 it("is enabled at info level", function() {
165 log.setLevel(log.levels.INFO);
166
167 log.info("a log message");
168 expect(console.info).toHaveBeenCalled();
169 });
170
171 it("is disabled at warn level", function() {
172 log.setLevel(log.levels.WARN);
173
174 log.info("a log message");
175 expect(console.info).not.toHaveBeenCalled();
176 });
177
178 it("is disabled at silent level", function() {
179 log.setLevel(log.levels.SILENT);
180
181 log.info("a log message");
182 expect(console.info).not.toHaveBeenCalled();
183 });
184 });
185
186 describe("log.warn", function() {
187 it("is enabled at info level", function() {
188 log.setLevel(log.levels.INFO);
189
190 log.warn("a log message");
191 expect(console.warn).toHaveBeenCalled();
192 });
193
194 it("is enabled at warn level", function() {
195 log.setLevel(log.levels.WARN);
196
197 log.warn("a log message");
198 expect(console.warn).toHaveBeenCalled();
199 });
200
201 it("is disabled at error level", function() {
202 log.setLevel(log.levels.ERROR);
203
204 log.warn("a log message");
205 expect(console.warn).not.toHaveBeenCalled();
206 });
207
208 it("is disabled at silent level", function() {
209 log.setLevel(log.levels.SILENT);
210
211 log.warn("a log message");
212 expect(console.warn).not.toHaveBeenCalled();
213 });
214 });
215
216 describe("log.error", function() {
217 it("is enabled at warn level", function() {
218 log.setLevel(log.levels.WARN);
219
220 log.error("a log message");
221 expect(console.error).toHaveBeenCalled();
222 });
223
224 it("is enabled at error level", function() {
225 log.setLevel(log.levels.ERROR);
226
227 log.error("a log message");
228 expect(console.error).toHaveBeenCalled();
229 });
230
231 it("is disabled at silent level", function() {
232 log.setLevel(log.levels.SILENT);
233
234 log.error("a log message");
235 expect(console.error).not.toHaveBeenCalled();
236 });
237 });
238 });
239 });
240});
241