@@ -1774,9 +1774,14 @@ describe('Raven (public API)', function() {
1774
1774
1775
1775
describe ( '.setDataCallback' , function ( ) {
1776
1776
it ( 'should set the globalOptions.dataCallback attribute' , function ( ) {
1777
- var foo = function ( ) { } ;
1777
+ var foo = sinon . stub ( ) ;
1778
1778
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 ) ;
1780
1785
} ) ;
1781
1786
1782
1787
it ( 'should clear globalOptions.dataCallback with no arguments' , function ( ) {
@@ -1785,13 +1790,33 @@ describe('Raven (public API)', function() {
1785
1790
Raven . setDataCallback ( ) ;
1786
1791
assert . isUndefined ( Raven . _globalOptions . dataCallback ) ;
1787
1792
} ) ;
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
+ } ) ;
1788
1808
} ) ;
1789
1809
1790
1810
describe ( '.setShouldSendCallback' , function ( ) {
1791
1811
it ( 'should set the globalOptions.shouldSendCallback attribute' , function ( ) {
1792
- var foo = function ( ) { } ;
1812
+ var foo = sinon . stub ( ) ;
1793
1813
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 ) ;
1795
1820
} ) ;
1796
1821
1797
1822
it ( 'should clear globalOptions.shouldSendCallback with no arguments' , function ( ) {
@@ -1800,6 +1825,21 @@ describe('Raven (public API)', function() {
1800
1825
Raven . setShouldSendCallback ( ) ;
1801
1826
assert . isUndefined ( Raven . _globalOptions . shouldSendCallback ) ;
1802
1827
} ) ;
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
+ } ) ;
1803
1843
} ) ;
1804
1844
1805
1845
describe ( '.captureMessage' , function ( ) {
0 commit comments