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'}),
|
|
);
|
|
});
|
|
});
|