diff --git a/lib/diagnostics_channel.js b/lib/diagnostics_channel.js index 998f17aa61d..7c1f4fa845e 100644 --- a/lib/diagnostics_channel.js +++ b/lib/diagnostics_channel.js @@ -229,6 +229,7 @@ class Channel { } subscribe(subscription) { + validateFunction(subscription, 'subscription'); markActive(this); this.subscribe(subscription); } diff --git a/test/parallel/test-diagnostics-channel-object-channel-pub-sub.js b/test/parallel/test-diagnostics-channel-object-channel-pub-sub.js index 9498419b806..f0254493655 100644 --- a/test/parallel/test-diagnostics-channel-object-channel-pub-sub.js +++ b/test/parallel/test-diagnostics-channel-object-channel-pub-sub.js @@ -44,3 +44,5 @@ assert.ok(!channel.unsubscribe(subscriber)); assert.throws(() => { channel.subscribe(null); }, { code: 'ERR_INVALID_ARG_TYPE' }); +assert.ok(!channel.hasSubscribers); +assert.ok(!dc.hasSubscribers('test')); diff --git a/test/parallel/test-diagnostics-channel-pub-sub.js b/test/parallel/test-diagnostics-channel-pub-sub.js index a7232ab58ce..e3a868b7ce0 100644 --- a/test/parallel/test-diagnostics-channel-pub-sub.js +++ b/test/parallel/test-diagnostics-channel-pub-sub.js @@ -42,6 +42,8 @@ assert.ok(!dc.unsubscribe(name, subscriber)); assert.throws(() => { dc.subscribe(name, null); }, { code: 'ERR_INVALID_ARG_TYPE' }); +assert.ok(!channel.hasSubscribers); +assert.ok(!dc.hasSubscribers(name)); // Reaching zero subscribers should not delete from the channels map as there // will be no more weakref to incRef if another subscribe happens while the