| "use strict"; | 
|   | 
| define(['test/test-helpers'], function(testHelpers) { | 
|     var describeIf = testHelpers.describeIf; | 
|     var it = testHelpers.itWithFreshLog; | 
|   | 
|     var originalConsole = window.console; | 
|   | 
|     describe("Setting default log level tests:", function() { | 
|   | 
|         beforeEach(function() { | 
|             window.console = {"log" : jasmine.createSpy("console.log")}; | 
|             this.addMatchers({ | 
|                 "toBeAtLevel" : testHelpers.toBeAtLevel, | 
|                 "toBeTheStoredLevel" : testHelpers.toBeTheLevelStoredByLocalStorage | 
|             }); | 
|   | 
|             testHelpers.clearStoredLevels(); | 
|         }); | 
|   | 
|         afterEach(function() { | 
|             window.console = originalConsole; | 
|         }); | 
|   | 
|         describe("If no level is saved", function() { | 
|             it("new level is always set", function(log) { | 
|                 log.setDefaultLevel("trace"); | 
|                 expect(log).toBeAtLevel("trace"); | 
|             }); | 
|   | 
|             it("level is not persisted", function(log) { | 
|                 log.setDefaultLevel("debug"); | 
|                 expect("debug").not.toBeTheStoredLevel(); | 
|             }); | 
|         }); | 
|          | 
|         describe("If a level is saved", function () { | 
|             beforeEach(function () { | 
|                 testHelpers.setStoredLevel("trace"); | 
|             }); | 
|              | 
|             it("saved level is not modified", function (log) { | 
|                 log.setDefaultLevel("debug"); | 
|                 expect(log).toBeAtLevel("trace"); | 
|             }); | 
|         }); | 
|   | 
|         describe("If the level is stored incorrectly", function() { | 
|             beforeEach(function() { | 
|                 testHelpers.setLocalStorageStoredLevel("gibberish"); | 
|             }); | 
|   | 
|             it("new level is set", function(log) { | 
|                 log.setDefaultLevel("debug"); | 
|                 expect(log).toBeAtLevel("debug"); | 
|                 expect("debug").not.toBeTheStoredLevel(); | 
|             }); | 
|         }); | 
|   | 
|         describe("log.resetLevel() resets the log", function() { | 
|             it("to warn if no explicit default is set", function(log) { | 
|                 log.setLevel("debug"); | 
|                 log.resetLevel(); | 
|   | 
|                 expect(log).toBeAtLevel("warn"); | 
|             }); | 
|   | 
|             it("to info if default is set to info", function(log) { | 
|                 log.setDefaultLevel("info"); | 
|                 log.setLevel("debug"); | 
|                 log.resetLevel(); | 
|   | 
|                 expect(log).toBeAtLevel("info"); | 
|             }); | 
|         }); | 
|     }); | 
| }); |