@@ -198,7 +198,49 @@ describe("raven-for-redux", () => {
198198) ;
199199} ) ;
200200} ) ;
201+ describe ( "with multiple data callbaks" , ( ) => {
202+ beforeEach ( ( ) => {
203+ context . firstOriginalDataCallback = jest . fn ( ( data , original ) => {
204+ const newData = Object . assign ( { } , data , {
205+ firstData :"first"
206+ } ) ;
207+ return original ?original ( newData ) :newData ;
208+ } ) ;
209+ context . secondOriginalDataCallback = jest . fn ( ( data , original ) => {
210+ const newData = Object . assign ( { } , data , {
211+ secondData :"second"
212+ } ) ;
213+ return original ?original ( newData ) :newData ;
214+ } ) ;
215+ Raven . setDataCallback ( context . firstOriginalDataCallback ) ;
216+ Raven . setDataCallback ( context . secondOriginalDataCallback ) ;
217+ context . stateTransformer = jest . fn ( state => `transformed state${ state } ` ) ;
201218
219+ context . store = createStore (
220+ reducer ,
221+ applyMiddleware (
222+ createRavenMiddleware ( Raven , {
223+ stateTransformer :context . stateTransformer
224+ } )
225+ )
226+ ) ;
227+ } ) ;
228+
229+ it ( "runs all the data callbacks given" , ( ) => {
230+ context . store . dispatch ( { type :"INCREMENT" } ) ;
231+ expect ( ( ) => {
232+ context . store . dispatch ( { type :"THROW" } ) ;
233+ } ) . toThrow ( ) ;
234+ expect ( context . firstOriginalDataCallback ) . toHaveBeenCalledTimes ( 1 ) ;
235+ expect ( context . secondOriginalDataCallback ) . toHaveBeenCalledTimes ( 1 ) ;
236+
237+ expect ( context . mockTransport ) . toHaveBeenCalledTimes ( 1 ) ;
238+ const data = context . mockTransport . mock . calls [ 0 ] [ 0 ] . data ;
239+ expect ( data . extra . state ) . toEqual ( "transformed state 1" ) ;
240+ expect ( data . firstData ) . toEqual ( "first" ) ;
241+ expect ( data . secondData ) . toEqual ( "second" ) ;
242+ } ) ;
243+ } ) ;
202244describe ( "with filterBreadcrumbActions option enabled" , ( ) => {
203245beforeEach ( ( ) => {
204246context . filterBreadcrumbActions = action => {