travel/admin/node_modules/loglevel/test/method-factory-test.js

43 lines
1.8 KiB
JavaScript

"use strict";
define(['test/test-helpers'], function(testHelpers) {
var it = testHelpers.itWithFreshLog;
describe("Setting the methodFactory tests:", function() {
it("methodFactory should be called once for each loggable level", function(log) {
log.methodFactory = jasmine.createSpy("methodFactory");
log.setLevel("trace");
expect(log.methodFactory.calls.count()).toEqual(5);
expect(log.methodFactory.calls.argsFor(0)).toEqual(["trace", 0, undefined]);
expect(log.methodFactory.calls.argsFor(1)).toEqual(["debug", 0, undefined]);
expect(log.methodFactory.calls.argsFor(2)).toEqual(["info", 0, undefined]);
expect(log.methodFactory.calls.argsFor(3)).toEqual(["warn", 0, undefined]);
expect(log.methodFactory.calls.argsFor(4)).toEqual(["error", 0, undefined]);
log.setLevel("error");
expect(log.methodFactory.calls.count()).toEqual(6);
expect(log.methodFactory.calls.argsFor(5)).toEqual(["error", 4, undefined]);
});
it("functions returned by methodFactory should be used as logging functions", function(log) {
var logFunction = function() {};
log.methodFactory = function() { return logFunction; };
log.setLevel("error");
expect(log.warn).not.toEqual(logFunction);
expect(log.error).toEqual(logFunction);
});
it("the third argument should be logger's name", function(log) {
var logger = log.getLogger("newLogger");
logger.methodFactory = jasmine.createSpy("methodFactory");
logger.setLevel("error");
expect(logger.methodFactory.calls.argsFor(0)).toEqual(["error", 4, "newLogger"]);
});
});
});