@@ -1774,9 +1774,14 @@ describe('Raven (public API)', function() {
17741774
17751775 describe ( '.setDataCallback' , function ( ) {
17761776 it ( 'should set the globalOptions.dataCallback attribute' , function ( ) {
1777- var foo = function ( ) { } ;
1777+ var foo = sinon . stub ( ) ;
17781778 Raven . setDataCallback ( foo ) ;
1779- assert . equal ( Raven . _globalOptions . dataCallback , foo ) ;
1779+
1780+ // note that setDataCallback creates a callback/closure around
1781+ // foo, so can't test for equality - just verify that calling the wrapper
1782+ // also calls foo
1783+ Raven . _globalOptions . dataCallback ( ) ;
1784+ assert . isTrue ( foo . calledOnce ) ;
17801785 } ) ;
17811786
17821787 it ( 'should clear globalOptions.dataCallback with no arguments' , function ( ) {
@@ -1785,13 +1790,33 @@ describe('Raven (public API)', function() {
17851790 Raven . setDataCallback ( ) ;
17861791 assert . isUndefined ( Raven . _globalOptions . dataCallback ) ;
17871792 } ) ;
1793+
1794+ it ( 'should generate a wrapper that passes the prior callback as the 2nd argument' , function ( ) {
1795+ var foo = sinon . stub ( ) ;
1796+ var bar = sinon . spy ( function ( data , orig ) {
1797+ assert . equal ( orig , foo ) ;
1798+ foo ( ) ;
1799+ } ) ;
1800+ Raven . _globalOptions . dataCallback = foo ;
1801+ Raven . setDataCallback ( bar ) ;
1802+ Raven . _globalOptions . dataCallback ( {
1803+ 'a' : 1 // "data"
1804+ } ) ;
1805+ assert . isTrue ( bar . calledOnce ) ;
1806+ assert . isTrue ( foo . calledOnce ) ;
1807+ } ) ;
17881808 } ) ;
17891809
17901810 describe ( '.setShouldSendCallback' , function ( ) {
17911811 it ( 'should set the globalOptions.shouldSendCallback attribute' , function ( ) {
1792- var foo = function ( ) { } ;
1812+ var foo = sinon . stub ( ) ;
17931813 Raven . setShouldSendCallback ( foo ) ;
1794- assert . equal ( Raven . _globalOptions . shouldSendCallback , foo ) ;
1814+
1815+ // note that setShouldSendCallback creates a callback/closure around
1816+ // foo, so can't test for equality - just verify that calling the wrapper
1817+ // also calls foo
1818+ Raven . _globalOptions . shouldSendCallback ( ) ;
1819+ assert . isTrue ( foo . calledOnce ) ;
17951820 } ) ;
17961821
17971822 it ( 'should clear globalOptions.shouldSendCallback with no arguments' , function ( ) {
@@ -1800,6 +1825,21 @@ describe('Raven (public API)', function() {
18001825 Raven . setShouldSendCallback ( ) ;
18011826 assert . isUndefined ( Raven . _globalOptions . shouldSendCallback ) ;
18021827 } ) ;
1828+
1829+ it ( 'should generate a wrapper that passes the prior callback as the 2nd argument' , function ( ) {
1830+ var foo = sinon . stub ( ) ;
1831+ var bar = sinon . spy ( function ( data , orig ) {
1832+ assert . equal ( orig , foo ) ;
1833+ foo ( ) ;
1834+ } ) ;
1835+ Raven . _globalOptions . shouldSendCallback = foo ;
1836+ Raven . setShouldSendCallback ( bar ) ;
1837+ Raven . _globalOptions . shouldSendCallback ( {
1838+ 'a' : 1 // "data"
1839+ } ) ;
1840+ assert . isTrue ( bar . calledOnce ) ;
1841+ assert . isTrue ( foo . calledOnce ) ;
1842+ } ) ;
18031843 } ) ;
18041844
18051845 describe ( '.captureMessage' , function ( ) {
0 commit comments