node/test/parallel/test-diagnostics-channel-sa...

30 lines
630 B
JavaScript

'use strict';
const common = require('../common');
const dc = require('diagnostics_channel');
const assert = require('assert');
const input = {
foo: 'bar'
};
const channel = dc.channel('fail');
const error = new Error('nope');
process.on('uncaughtException', common.mustCall((err) => {
assert.strictEqual(err, error);
}));
channel.subscribe(common.mustCall((message, name) => {
throw error;
}));
// The failing subscriber should not stop subsequent subscribers from running
channel.subscribe(common.mustCall());
// Publish should continue without throwing
const fn = common.mustCall();
channel.publish(input);
fn();