@@ -364,7 +364,7 @@ def report(_error, handled:, severity:, context:, source:)
364364 end
365365
366366 test "error context middleware can mutate context hash" do
367- middleware = -> ( _ , context ) { context . merge ( { foo : :bar } ) }
367+ middleware = -> ( _ , context : , ** kwargs ) { context . merge ( { foo : :bar } ) }
368368
369369 error = ArgumentError . new ( "Oops" )
370370
@@ -375,13 +375,13 @@ def report(_error, handled:, severity:, context:, source:)
375375 end
376376
377377 class MyErrorContextMiddleware
378- def call ( _ , context )
378+ def call ( _ , context : , ** kwargs )
379379 context . merge ( { bar : :baz } )
380380 end
381381 end
382382
383383 test "can have multiple error context middlewares" do
384- @reporter . add_middleware ( -> ( _ , context ) { context . merge ( { foo : :bar } ) } )
384+ @reporter . add_middleware ( -> ( _ , context : , ** kwargs ) { context . merge ( { foo : :bar } ) } )
385385 @reporter . add_middleware ( MyErrorContextMiddleware . new )
386386
387387 error = ArgumentError . new ( "Oops" )
@@ -391,11 +391,28 @@ def call(_, context)
391391 end
392392
393393 test "last error context middleware to update a key wins" do
394- @reporter . add_middleware ( -> ( _ , context ) { context . merge ( { foo : :bar } ) } )
395- @reporter . add_middleware ( -> ( _ , context ) { context . merge ( { foo : :baz } ) } )
394+ @reporter . add_middleware ( -> ( _ , context : , ** kwargs ) { context . merge ( { foo : :bar } ) } )
395+ @reporter . add_middleware ( -> ( _ , context : , ** kwargs ) { context . merge ( { foo : :baz } ) } )
396396 error = ArgumentError . new ( "Oops" )
397397 @reporter . report ( error )
398398
399399 assert_equal [ [ error , true , :warning , "application" , { foo : :baz } ] ] , @subscriber . events
400400 end
401+
402+ test "error context middleware receives same parameters as #report" do
403+ reported_error = ArgumentError . new ( "Oops" )
404+ @reporter . add_middleware ( -> ( error , context :, handled :, severity :, source :) {
405+ assert_equal reported_error , error
406+ assert_equal Hash . new , context
407+ assert_equal true , handled
408+ assert_equal :warning , severity
409+ assert_equal ActiveSupport ::ErrorReporter ::DEFAULT_SOURCE , source
410+
411+ context . merge ( { foo : :bar } )
412+ } )
413+
414+ @reporter . report ( reported_error )
415+
416+ assert_equal [ [ reported_error , true , :warning , "application" , { foo : :bar } ] ] , @subscriber . events
417+ end
401418end
0 commit comments