protractor-browser-logs
Version:
Provides tools for asserting browser logs inside protractor tests
76 lines (61 loc) • 2.83 kB
JavaScript
;
var promised = require('chai-as-promised');
var expect = require('chai').use(promised).expect;
var logs = require('../../index');
var mocks = require('./mocks');
describe('Browser Logs Reporters', function () {
it('should accept empty options', function () {
var browserLogs = logs(mocks.browser([]), {});
return expect(browserLogs.verify()).to.eventually.be.fulfilled;
});
it('should call a reporter with empty log', function () {
var reporter = createSpy();
var browserLogs = logs(mocks.browser([]), { reporters: [reporter] });
return expect(browserLogs.verify()).to.eventually.be.fulfilled.then(function () {
expect(reporter.callCount).to.equal(1);
expect(reporter.callArguments[0]).to.deep.equal([]);
});
});
it('should call a reporter with complete log', function () {
var reporter = createSpy();
var store = [];
var browserConsole = mocks.console(store);
var browserLogs = logs(mocks.browser(store), { reporters: [reporter] });
browserLogs.ignore(/.*/);
['debug', 'log', 'info', 'warn', 'error'].forEach(function (level) {
browserConsole[level](level);
});
return expect(browserLogs.verify()).to.eventually.be.fulfilled.then(function () {
expect(reporter.callCount).to.equal(1);
expect(reporter.callArguments[0]).to.deep.equal([{ level: { name: 'DEBUG' }, message: 'debug' }, { level: { name: 'INFO' }, message: 'log' }, { level: { name: 'INFO' }, message: 'info' }, { level: { name: 'WARNING' }, message: 'warn' }, { level: { name: 'SEVERE' }, message: 'error' }]);
});
});
it('should call a reporter even if verification fails', function () {
var reporter = createSpy();
var store = [];
var browserConsole = mocks.console(store);
var browserLogs = logs(mocks.browser(store), { reporters: [reporter] });
browserConsole.error('error');
return expect(browserLogs.verify()).to.eventually.be.rejected.then(function () {
expect(reporter.callCount).to.equal(1);
expect(reporter.callArguments[0]).to.deep.equal([{ level: { name: 'SEVERE' }, message: 'error' }]);
});
});
it('should call all reporters', function () {
var reporter1 = createSpy();
var reporter2 = createSpy();
var browserLogs = logs(mocks.browser([]), { reporters: [reporter1, reporter2] });
return expect(browserLogs.verify()).to.eventually.be.fulfilled.then(function () {
expect(reporter1.callCount).to.equal(1);
expect(reporter2.callCount).to.equal(1);
});
});
function createSpy() {
var result = function result() {
result.callCount = (result.callCount || 0) + 1;
result.callArguments = (result.callArguments || [])[result.callCount - 1] = arguments;
};
return result;
}
});
//# sourceMappingURL=reporters.spec.js.map