11cb0ef41Sopenharmony_ci'use strict'; 21cb0ef41Sopenharmony_ci 31cb0ef41Sopenharmony_ciconst common = require('../common'); 41cb0ef41Sopenharmony_ciconst dc = require('diagnostics_channel'); 51cb0ef41Sopenharmony_ciconst assert = require('assert'); 61cb0ef41Sopenharmony_ci 71cb0ef41Sopenharmony_ciconst input = { 81cb0ef41Sopenharmony_ci foo: 'bar' 91cb0ef41Sopenharmony_ci}; 101cb0ef41Sopenharmony_ci 111cb0ef41Sopenharmony_ciconst symbol = Symbol('test'); 121cb0ef41Sopenharmony_ci 131cb0ef41Sopenharmony_ci// Individual channel objects can be created to avoid future lookups 141cb0ef41Sopenharmony_ciconst channel = dc.channel(symbol); 151cb0ef41Sopenharmony_ci 161cb0ef41Sopenharmony_ci// Expect two successful publishes later 171cb0ef41Sopenharmony_cichannel.subscribe(common.mustCall((message, name) => { 181cb0ef41Sopenharmony_ci assert.strictEqual(name, symbol); 191cb0ef41Sopenharmony_ci assert.deepStrictEqual(message, input); 201cb0ef41Sopenharmony_ci})); 211cb0ef41Sopenharmony_ci 221cb0ef41Sopenharmony_cichannel.publish(input); 231cb0ef41Sopenharmony_ci 241cb0ef41Sopenharmony_ci{ 251cb0ef41Sopenharmony_ci assert.throws(() => { 261cb0ef41Sopenharmony_ci dc.channel(null); 271cb0ef41Sopenharmony_ci }, /ERR_INVALID_ARG_TYPE/); 281cb0ef41Sopenharmony_ci} 29