Skip to content

Commit 17c029c

Browse files
committed
Merge pull request #474 from getsentry/fix-console-plugin
Fix bad level arg in console plugin, other fixes
2 parents 35a298b + c37e184 commit 17c029c

File tree

2 files changed

+55
-5
lines changed

2 files changed

+55
-5
lines changed

plugins/console.js

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,18 +18,20 @@ function consolePlugin(Raven, console) {
1818

1919
// warning level is the only level that doesn't map up
2020
// correctly with what Sentry expects.
21-
if (level === 'warn') level = 'warning';
21+
if (l === 'warn') l = 'warning';
2222
return function () {
2323
var args = [].slice.call(arguments);
24-
Raven.captureMessage('' + args[0], {level: level, logger: 'console', extra: { 'arguments': args }});
24+
Raven.captureMessage('' + args.join(' '), {level: l, logger: 'console', extra: { 'arguments': args }});
2525

2626
// this fails for some browsers. :(
2727
if (originalConsoleLevel) {
2828
// IE9 doesn't allow calling apply on console functions directly
2929
// See: https://stackoverflow.com/questions/5472938/does-ie9-support-console-log-and-is-it-a-real-function#answer-5473193
30-
Function.prototype.bind
31-
.call(originalConsoleLevel, originalConsole)
32-
.apply(originalConsole, args);
30+
Function.prototype.apply.call(
31+
originalConsoleLevel,
32+
originalConsole,
33+
args
34+
);
3335
}
3436
};
3537
};

test/plugins/console.test.js

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
var _Raven = require('../../src/raven');
2+
var consolePlugin = require('../../plugins/console');
3+
4+
var Raven;
5+
describe('console plugin', function () {
6+
beforeEach(function () {
7+
Raven = new _Raven();
8+
Raven.config('http://abc@example.com:80/2');
9+
});
10+
11+
it('should call Raven.captureMessage', function () {
12+
var console = {
13+
debug: function () {},
14+
info: function () {},
15+
warn: function () {},
16+
error: function () {}
17+
};
18+
19+
consolePlugin(Raven, console);
20+
21+
this.sinon.stub(Raven, 'captureMessage');
22+
console.error('Raven should capture', 'console.error');
23+
24+
assert.equal(Raven.captureMessage.callCount, 1);
25+
assert.equal(Raven.captureMessage.getCall(0).args[0], 'Raven should capture console.error');
26+
assert.deepEqual(Raven.captureMessage.getCall(0).args[1], {
27+
level: 'error',
28+
logger: 'console',
29+
extra: {
30+
arguments: ['Raven should capture', 'console.error']
31+
}
32+
});
33+
34+
Raven.captureMessage.reset();
35+
36+
console.warn('Raven should capture console.warn');
37+
38+
assert.equal(Raven.captureMessage.callCount, 1);
39+
assert.equal(Raven.captureMessage.getCall(0).args[0], 'Raven should capture console.warn');
40+
assert.deepEqual(Raven.captureMessage.getCall(0).args[1], {
41+
level: 'warning', // warn => warning
42+
logger: 'console',
43+
extra: {
44+
arguments: ['Raven should capture console.warn']
45+
}
46+
});
47+
});
48+
});

0 commit comments

Comments
 (0)