From 633c92eae865e957121e08de634aeee11a8b3992 Mon Sep 17 00:00:00 2001 From: RaindropsSys Date: Mon, 24 Apr 2023 14:03:36 +0200 Subject: Updated 18 files, added 1692 files and deleted includes/system/compare.inc (automated) --- .../loglevel/test/console-fallback-test.js | 98 ++++++++++++++++++++++ 1 file changed, 98 insertions(+) create mode 100644 includes/external/matrix/node_modules/loglevel/test/console-fallback-test.js (limited to 'includes/external/matrix/node_modules/loglevel/test/console-fallback-test.js') diff --git a/includes/external/matrix/node_modules/loglevel/test/console-fallback-test.js b/includes/external/matrix/node_modules/loglevel/test/console-fallback-test.js new file mode 100644 index 0000000..58fda9d --- /dev/null +++ b/includes/external/matrix/node_modules/loglevel/test/console-fallback-test.js @@ -0,0 +1,98 @@ +"use strict"; + +function consoleLogIsCalledBy(log, methodName) { + it(methodName + " calls console.log", function() { + log.setLevel(log.levels.TRACE); + log[methodName]("Log message for call to " + methodName); + expect(console.log.calls.length).toEqual(1); + }); +} + +function mockConsole() { + return {"log" : jasmine.createSpy("console.log")}; +} + +define(['../lib/loglevel'], function(log) { + var originalConsole = window.console; + + describe("Fallback functionality:", function() { + describe("with no console present", function() { + beforeEach(function() { + window.console = undefined; + }); + + afterEach(function() { + window.console = originalConsole; + }); + + it("silent method calls are allowed", function() { + var result = log.setLevel(log.levels.SILENT); + log.trace("hello"); + + expect(result).toBeUndefined(); + }); + + it("setting an active level gently returns an error string", function() { + var result = log.setLevel(log.levels.TRACE); + expect(result).toEqual("No console available for logging"); + }); + + it("active method calls are allowed, once the active setLevel fails", function() { + log.setLevel(log.levels.TRACE); + log.trace("hello"); + }); + + describe("if a console later appears", function () { + it("logging is re-enabled and works correctly when next used", function () { + log.setLevel(log.levels.WARN); + + window.console = mockConsole(); + log.error("error"); + + expect(window.console.log).toHaveBeenCalled(); + }); + + it("logging is re-enabled but does nothing when used at a blocked level", function () { + log.setLevel(log.levels.WARN); + + window.console = mockConsole(); + log.trace("trace"); + + expect(window.console.log).not.toHaveBeenCalled(); + }); + + it("changing level works correctly from that point", function () { + window.console = mockConsole(); + var result = log.setLevel(log.levels.WARN); + + expect(result).toBeUndefined(); + }); + }); + }); + + describe("with a console that only supports console.log", function() { + beforeEach(function() { + window.console = mockConsole(); + }); + + afterEach(function() { + window.console = originalConsole; + }); + + it("log can be set to silent", function() { + log.setLevel(log.levels.SILENT); + }); + + it("log can be set to an active level", function() { + log.setLevel(log.levels.ERROR); + }); + + consoleLogIsCalledBy(log, "trace"); + consoleLogIsCalledBy(log, "debug"); + consoleLogIsCalledBy(log, "info"); + consoleLogIsCalledBy(log, "warn"); + consoleLogIsCalledBy(log, "trace"); + }); + }); +}); + -- cgit