73 lines
1.4 KiB
JavaScript
73 lines
1.4 KiB
JavaScript
|
// @flow strict-local
|
||
|
|
||
|
import assert from 'assert';
|
||
|
import sinon from 'sinon';
|
||
|
import Logger from '../src/Logger';
|
||
|
|
||
|
describe('Logger', () => {
|
||
|
let onLog;
|
||
|
let logDisposable;
|
||
|
beforeEach(() => {
|
||
|
onLog = sinon.spy();
|
||
|
logDisposable = Logger.onLog(onLog);
|
||
|
});
|
||
|
|
||
|
afterEach(() => {
|
||
|
logDisposable.dispose();
|
||
|
});
|
||
|
|
||
|
it('emits log diagnostics with info level', () => {
|
||
|
let diagnostic = {
|
||
|
message: 'hello',
|
||
|
origin: 'logger',
|
||
|
};
|
||
|
|
||
|
Logger.log(diagnostic);
|
||
|
|
||
|
assert(
|
||
|
onLog.calledWith({
|
||
|
level: 'info',
|
||
|
diagnostics: [diagnostic],
|
||
|
type: 'log',
|
||
|
}),
|
||
|
);
|
||
|
});
|
||
|
|
||
|
it('emits warn diagnostic with warn level', () => {
|
||
|
let diagnostic = {
|
||
|
message: 'zomg',
|
||
|
origin: 'logger',
|
||
|
};
|
||
|
|
||
|
Logger.warn(diagnostic);
|
||
|
|
||
|
assert(
|
||
|
onLog.calledWith({level: 'warn', diagnostics: [diagnostic], type: 'log'}),
|
||
|
);
|
||
|
});
|
||
|
|
||
|
it('emits error messages with error level', () => {
|
||
|
let diagnostic = {
|
||
|
message: 'oh noes',
|
||
|
origin: 'logger',
|
||
|
};
|
||
|
|
||
|
Logger.error(diagnostic);
|
||
|
|
||
|
assert(
|
||
|
onLog.calledWith({
|
||
|
level: 'error',
|
||
|
diagnostics: [diagnostic],
|
||
|
type: 'log',
|
||
|
}),
|
||
|
);
|
||
|
});
|
||
|
|
||
|
it('emits progress messages with progress level', () => {
|
||
|
Logger.progress('update');
|
||
|
assert(
|
||
|
onLog.calledWith({level: 'progress', message: 'update', type: 'log'}),
|
||
|
);
|
||
|
});
|
||
|
});
|