File tree Expand file tree Collapse file tree 2 files changed +21
-1
lines changed
datadog-instrumentations/src Expand file tree Collapse file tree 2 files changed +21
-1
lines changed Original file line number Diff line number Diff line change @@ -95,7 +95,7 @@ function wrapListener (originalOn) {
9595function removeListener ( originalOff ) {
9696 return function ( eventName , handler ) {
9797 if ( eventName === 'message' ) {
98- const wrappedHandler = eventHandlerMap . get ( handler )
98+ const wrappedHandler = eventHandlerMap . get ( handler ) || handler
9999 return originalOff . call ( this , eventName , wrappedHandler )
100100 }
101101 return originalOff . apply ( this , arguments )
Original file line number Diff line number Diff line change @@ -95,6 +95,26 @@ describe('Plugin', () => {
9595 } )
9696 } )
9797
98+ it ( 'should handle removing a listener that was never added' , ( done ) => {
99+ wsServer . on ( 'connection' , ( ws ) => {
100+ connectionReceived = true
101+ ws . send ( 'test message' )
102+ } )
103+
104+ const neverAddedHandler = ( ) => {
105+ throw new Error ( 'this should never be called' )
106+ }
107+
108+ client . on ( 'message' , ( msg ) => {
109+ assert . strictEqual ( msg . toString ( ) , 'test message' )
110+ done ( )
111+ } )
112+
113+ assert . doesNotThrow ( ( ) => {
114+ client . off ( 'message' , neverAddedHandler )
115+ } )
116+ } )
117+
98118 it ( 'should do automatic instrumentation for server connections' , done => {
99119 connectionReceived = false
100120
You can’t perform that action at this time.
0 commit comments