.gitignore added
[dotfiles/.git] / .config / coc / extensions / node_modules / coc-prettier / node_modules / loglevel / test / console-fallback-test.js
diff --git a/.config/coc/extensions/node_modules/coc-prettier/node_modules/loglevel/test/console-fallback-test.js b/.config/coc/extensions/node_modules/coc-prettier/node_modules/loglevel/test/console-fallback-test.js
new file mode 100644 (file)
index 0000000..58fda9d
--- /dev/null
@@ -0,0 +1,98 @@
+"use strict";\r
+\r
+function consoleLogIsCalledBy(log, methodName) {\r
+    it(methodName + " calls console.log", function() {\r
+        log.setLevel(log.levels.TRACE);\r
+        log[methodName]("Log message for call to " + methodName);\r
+        expect(console.log.calls.length).toEqual(1);\r
+    });\r
+}\r
+\r
+function mockConsole() {\r
+    return {"log" : jasmine.createSpy("console.log")};\r
+}\r
+\r
+define(['../lib/loglevel'], function(log) {\r
+    var originalConsole = window.console;\r
+\r
+    describe("Fallback functionality:", function() {\r
+        describe("with no console present", function() {\r
+            beforeEach(function() {\r
+                window.console = undefined;\r
+            });\r
+\r
+            afterEach(function() {\r
+                window.console = originalConsole;\r
+            });\r
+\r
+            it("silent method calls are allowed", function() {\r
+                var result = log.setLevel(log.levels.SILENT);\r
+                log.trace("hello");\r
+\r
+                expect(result).toBeUndefined();\r
+            });\r
+\r
+            it("setting an active level gently returns an error string", function() {\r
+                var result = log.setLevel(log.levels.TRACE);\r
+                expect(result).toEqual("No console available for logging");\r
+            });\r
+\r
+            it("active method calls are allowed, once the active setLevel fails", function() {\r
+                log.setLevel(log.levels.TRACE);\r
+                log.trace("hello");\r
+            });\r
+\r
+            describe("if a console later appears", function () {\r
+                it("logging is re-enabled and works correctly when next used", function () {\r
+                    log.setLevel(log.levels.WARN);\r
+\r
+                    window.console = mockConsole();\r
+                    log.error("error");\r
+\r
+                    expect(window.console.log).toHaveBeenCalled();\r
+                });\r
+\r
+                it("logging is re-enabled but does nothing when used at a blocked level", function () {\r
+                    log.setLevel(log.levels.WARN);\r
+\r
+                    window.console = mockConsole();\r
+                    log.trace("trace");\r
+\r
+                    expect(window.console.log).not.toHaveBeenCalled();\r
+                });\r
+\r
+                it("changing level works correctly from that point", function () {\r
+                    window.console = mockConsole();\r
+                    var result = log.setLevel(log.levels.WARN);\r
+\r
+                    expect(result).toBeUndefined();\r
+                });\r
+            });\r
+        });\r
+\r
+        describe("with a console that only supports console.log", function() {\r
+            beforeEach(function() {\r
+                window.console = mockConsole();\r
+            });\r
+\r
+            afterEach(function() {\r
+                window.console = originalConsole;\r
+            });\r
+\r
+            it("log can be set to silent", function() {\r
+                log.setLevel(log.levels.SILENT);\r
+            });\r
+\r
+            it("log can be set to an active level", function() {\r
+                log.setLevel(log.levels.ERROR);\r
+            });\r
+\r
+            consoleLogIsCalledBy(log, "trace");\r
+            consoleLogIsCalledBy(log, "debug");\r
+            consoleLogIsCalledBy(log, "info");\r
+            consoleLogIsCalledBy(log, "warn");\r
+            consoleLogIsCalledBy(log, "trace");\r
+        });\r
+    });\r
+});\r
+\r