@@ -364,7 +364,7 @@ def report(_error, handled:, severity:, context:, source:)
364
364
end
365
365
366
366
test "error context middleware can mutate context hash" do
367
- middleware = -> ( _ , context ) { context . merge ( { foo : :bar } ) }
367
+ middleware = -> ( _ , context : , ** kwargs ) { context . merge ( { foo : :bar } ) }
368
368
369
369
error = ArgumentError . new ( "Oops" )
370
370
@@ -375,13 +375,13 @@ def report(_error, handled:, severity:, context:, source:)
375
375
end
376
376
377
377
class MyErrorContextMiddleware
378
- def call ( _ , context )
378
+ def call ( _ , context : , ** kwargs )
379
379
context . merge ( { bar : :baz } )
380
380
end
381
381
end
382
382
383
383
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 } ) } )
385
385
@reporter . add_middleware ( MyErrorContextMiddleware . new )
386
386
387
387
error = ArgumentError . new ( "Oops" )
@@ -391,11 +391,28 @@ def call(_, context)
391
391
end
392
392
393
393
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 } ) } )
396
396
error = ArgumentError . new ( "Oops" )
397
397
@reporter . report ( error )
398
398
399
399
assert_equal [ [ error , true , :warning , "application" , { foo : :baz } ] ] , @subscriber . events
400
400
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
401
418
end
0 commit comments