@@ -436,6 +436,36 @@ public void ConfigureScope_Sync_CallbackNeverInvoked()
436436 Assert . False ( invoked ) ;
437437 }
438438
439+ [ Fact ]
440+ public void ConfigureScope_SyncWithArg_CallbackNeverInvoked ( )
441+ {
442+ var invoked = false ;
443+ SentrySdk . ConfigureScope ( ( _ , _ ) => invoked = true , "arg" ) ;
444+ Assert . False ( invoked ) ;
445+ }
446+
447+ [ Fact ]
448+ public void ConfigureScope_SyncWithArg_ArgIsUsed ( )
449+ {
450+ using var _ = SentrySdk . Init ( o =>
451+ {
452+ o . Dsn = ValidDsn ;
453+ o . AutoSessionTracking = false ;
454+ o . BackgroundWorker = Substitute . For < IBackgroundWorker > ( ) ;
455+ o . InitNativeSdks = false ;
456+ } ) ;
457+
458+ const string key = "key" ;
459+ const string arg = "arg" ;
460+
461+ SentrySdk . ConfigureScope ( ( s , a ) => s . SetTag ( key , a ) , arg ) ;
462+
463+ string actual = null ;
464+ SentrySdk . ConfigureScope ( s => actual = s . Tags [ key ] ) ;
465+
466+ Assert . Equal ( arg , actual ) ;
467+ }
468+
439469 [ SkippableFact ]
440470 public async Task ConfigureScope_OnTask_PropagatedToCaller ( )
441471 {
@@ -668,6 +698,48 @@ await SentrySdk.ConfigureScopeAsync(_ =>
668698 Assert . False ( invoked ) ;
669699 }
670700
701+ [ Fact ]
702+ public async Task ConfigureScope_AsyncWithArg_CallbackNeverInvoked ( )
703+ {
704+ var invoked = false ;
705+ await SentrySdk . ConfigureScopeAsync ( ( _ , _ ) =>
706+ {
707+ invoked = true ;
708+ return Task . CompletedTask ;
709+ } , "arg" ) ;
710+ Assert . False ( invoked ) ;
711+ }
712+
713+ [ Fact ]
714+ public async Task ConfigureScope_AsyncWithArg_ArgIsUsed ( )
715+ {
716+ using var _ = SentrySdk . Init ( o =>
717+ {
718+ o . Dsn = ValidDsn ;
719+ o . AutoSessionTracking = false ;
720+ o . BackgroundWorker = Substitute . For < IBackgroundWorker > ( ) ;
721+ o . InitNativeSdks = false ;
722+ } ) ;
723+
724+ const string key = "key" ;
725+ const string arg = "arg" ;
726+
727+ await SentrySdk . ConfigureScopeAsync ( ( s , a ) =>
728+ {
729+ s . SetTag ( key , a ) ;
730+ return Task . CompletedTask ;
731+ } , arg ) ;
732+
733+ string actual = null ;
734+ await SentrySdk . ConfigureScopeAsync ( s =>
735+ {
736+ actual = s . Tags [ key ] ;
737+ return Task . CompletedTask ;
738+ } ) ;
739+
740+ Assert . Equal ( arg , actual ) ;
741+ }
742+
671743 [ Fact ]
672744 public void CaptureEvent_Instance_NoOp ( ) => SentrySdk . CaptureEvent ( new SentryEvent ( ) ) ;
673745
0 commit comments