UNPKG

2.55 kBJavaScriptView Raw
1"use strict";
2
3define(['test/test-helpers'], function(testHelpers) {
4 var describeIf = testHelpers.describeIf;
5 var it = testHelpers.itWithFreshLog;
6
7 var originalConsole = window.console;
8
9 describe("Setting default log level tests:", function() {
10
11 beforeEach(function() {
12 window.console = {"log" : jasmine.createSpy("console.log")};
13 jasmine.addMatchers({
14 "toBeAtLevel" : testHelpers.toBeAtLevel,
15 "toBeTheStoredLevel" : testHelpers.toBeTheLevelStoredByLocalStorage
16 });
17
18 testHelpers.clearStoredLevels();
19 });
20
21 afterEach(function() {
22 window.console = originalConsole;
23 });
24
25 describe("If no level is saved", function() {
26 beforeEach(function () {
27 testHelpers.clearStoredLevels();
28 });
29
30 it("new level is always set", function(log) {
31 log.setDefaultLevel("trace");
32 expect(log).toBeAtLevel("trace");
33 });
34
35 it("level is not persisted", function(log) {
36 log.setDefaultLevel("debug");
37 expect("debug").not.toBeTheStoredLevel();
38 });
39 });
40
41 describe("If a level is saved", function () {
42 beforeEach(function () {
43 testHelpers.setStoredLevel("trace");
44 });
45
46 it("saved level is not modified", function (log) {
47 log.setDefaultLevel("debug");
48 expect(log).toBeAtLevel("trace");
49 });
50 });
51
52 describe("If the level is stored incorrectly", function() {
53 beforeEach(function() {
54 testHelpers.setLocalStorageStoredLevel("gibberish");
55 });
56
57 it("new level is set", function(log) {
58 log.setDefaultLevel("debug");
59 expect(log).toBeAtLevel("debug");
60 expect("debug").not.toBeTheStoredLevel();
61 });
62 });
63
64 describe("log.resetLevel() resets the log", function() {
65 it("to warn if no explicit default is set", function(log) {
66 log.setLevel("debug");
67 log.resetLevel();
68
69 expect(log).toBeAtLevel("warn");
70 });
71
72 it("to info if default is set to info", function(log) {
73 log.setDefaultLevel("info");
74 log.setLevel("debug");
75 log.resetLevel();
76
77 expect(log).toBeAtLevel("info");
78 });
79 });
80 });
81});