Skip to content

Commit

Permalink
Improve coverage
Browse files Browse the repository at this point in the history
  • Loading branch information
boczeratul committed May 12, 2017
1 parent 3f51969 commit bce6e98
Show file tree
Hide file tree
Showing 2 changed files with 67 additions and 1 deletion.
21 changes: 20 additions & 1 deletion src/__tests__/logger.js
@@ -1,8 +1,10 @@
import { LogMessage } from '../message';
import { Slack, Fluentd, Console } from '../service';
import * as services from '../service';
import Level from '../enum/level';
import Logger from '../logger';

const { Slack, Fluentd, Console } = services;

describe('logger', () => {
describe('config', () => {
it('should accept object', () => {
Expand Down Expand Up @@ -179,5 +181,22 @@ describe('logger', () => {
expect(logFinished).toHaveBeenCalledTimes(2);
});
});

it('should not expose internal service errors', () => {
Slack.prototype.Log = jest.fn(() => Promise.reject(new Error()));
Fluentd.prototype.Log = jest.fn(() => Promise.reject(new Error()));
Console.prototype.Log = jest.fn(() => Promise.reject(new Error()));

const logger = new Logger(config).Label(label);

return logger.Log(Level.WARN, new LogMessage(message))
.then(() => {
expect(Slack.prototype.Log).not.toHaveBeenCalled();
expect(Fluentd.prototype.Log).toHaveBeenCalledTimes(1);
expect(Fluentd.prototype.Log).toHaveBeenCalledWith(Level.WARN, new LogMessage(message), label);
expect(Console.prototype.Log).toHaveBeenCalledTimes(1);
expect(Console.prototype.Log).toHaveBeenCalledWith(Level.WARN, new LogMessage(message), label);
});
});
});
});
47 changes: 47 additions & 0 deletions src/__tests__/loggerWithEnv.js
@@ -0,0 +1,47 @@
import * as services from '../service';
import Level from '../enum/level';

describe('logger', () => {
let Logger;

beforeAll(() => {
process.env.LOG_LEVEL = 'WARN';
Logger = require('../logger').default;
});

afterAll(() => {
delete process.env.LOG_LEVEL;
});

it('should accept process.env override', () => {
const config = {
base: {
logLevel: Level.INFO,
project: 'cool project',
environment: 'production',
},
Slack: {
logLevel: Level.ERROR,
slackToken: 'token',
slackChannel: 'slack channel',
},
Console: true,
Fluentd: {
collectorUrl: 'collector URL',
},
};

const logger = new Logger(config);

expect(logger.services).toHaveLength(3);
logger.services.forEach((service) => {
['Slack', 'Fluentd', 'Console'].forEach((serviceName) => {
if (service instanceof services[serviceName]) {
expect(service.config).toEqual(
Object.assign({}, config.base, config[serviceName], { logLevel: Level.WARN })
);
}
});
});
});
});

0 comments on commit bce6e98

Please sign in to comment.