.gitignore added
[dotfiles/.git] / .config / coc / extensions / node_modules / coc-prettier / node_modules / loglevel / test / console-fallback-test.js
1 "use strict";\r
2 \r
3 function consoleLogIsCalledBy(log, methodName) {\r
4     it(methodName + " calls console.log", function() {\r
5         log.setLevel(log.levels.TRACE);\r
6         log[methodName]("Log message for call to " + methodName);\r
7         expect(console.log.calls.length).toEqual(1);\r
8     });\r
9 }\r
10 \r
11 function mockConsole() {\r
12     return {"log" : jasmine.createSpy("console.log")};\r
13 }\r
14 \r
15 define(['../lib/loglevel'], function(log) {\r
16     var originalConsole = window.console;\r
17 \r
18     describe("Fallback functionality:", function() {\r
19         describe("with no console present", function() {\r
20             beforeEach(function() {\r
21                 window.console = undefined;\r
22             });\r
23 \r
24             afterEach(function() {\r
25                 window.console = originalConsole;\r
26             });\r
27 \r
28             it("silent method calls are allowed", function() {\r
29                 var result = log.setLevel(log.levels.SILENT);\r
30                 log.trace("hello");\r
31 \r
32                 expect(result).toBeUndefined();\r
33             });\r
34 \r
35             it("setting an active level gently returns an error string", function() {\r
36                 var result = log.setLevel(log.levels.TRACE);\r
37                 expect(result).toEqual("No console available for logging");\r
38             });\r
39 \r
40             it("active method calls are allowed, once the active setLevel fails", function() {\r
41                 log.setLevel(log.levels.TRACE);\r
42                 log.trace("hello");\r
43             });\r
44 \r
45             describe("if a console later appears", function () {\r
46                 it("logging is re-enabled and works correctly when next used", function () {\r
47                     log.setLevel(log.levels.WARN);\r
48 \r
49                     window.console = mockConsole();\r
50                     log.error("error");\r
51 \r
52                     expect(window.console.log).toHaveBeenCalled();\r
53                 });\r
54 \r
55                 it("logging is re-enabled but does nothing when used at a blocked level", function () {\r
56                     log.setLevel(log.levels.WARN);\r
57 \r
58                     window.console = mockConsole();\r
59                     log.trace("trace");\r
60 \r
61                     expect(window.console.log).not.toHaveBeenCalled();\r
62                 });\r
63 \r
64                 it("changing level works correctly from that point", function () {\r
65                     window.console = mockConsole();\r
66                     var result = log.setLevel(log.levels.WARN);\r
67 \r
68                     expect(result).toBeUndefined();\r
69                 });\r
70             });\r
71         });\r
72 \r
73         describe("with a console that only supports console.log", function() {\r
74             beforeEach(function() {\r
75                 window.console = mockConsole();\r
76             });\r
77 \r
78             afterEach(function() {\r
79                 window.console = originalConsole;\r
80             });\r
81 \r
82             it("log can be set to silent", function() {\r
83                 log.setLevel(log.levels.SILENT);\r
84             });\r
85 \r
86             it("log can be set to an active level", function() {\r
87                 log.setLevel(log.levels.ERROR);\r
88             });\r
89 \r
90             consoleLogIsCalledBy(log, "trace");\r
91             consoleLogIsCalledBy(log, "debug");\r
92             consoleLogIsCalledBy(log, "info");\r
93             consoleLogIsCalledBy(log, "warn");\r
94             consoleLogIsCalledBy(log, "trace");\r
95         });\r
96     });\r
97 });\r
98 \r