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