1// Flags: --no-warnings 2// The flag suppresses stderr output but the warning event will still emit 3'use strict'; 4 5const common = require('../common'); 6const events = require('events'); 7const assert = require('assert'); 8 9class FakeInput extends events.EventEmitter { 10 resume() {} 11 pause() {} 12 write() {} 13 end() {} 14} 15 16const e = new FakeInput(); 17e.setMaxListeners(1); 18 19process.on('warning', common.mustCall((warning) => { 20 assert.ok(warning instanceof Error); 21 assert.strictEqual(warning.name, 'MaxListenersExceededWarning'); 22 assert.strictEqual(warning.emitter, e); 23 assert.strictEqual(warning.count, 2); 24 assert.strictEqual(warning.type, 'event-type'); 25 assert.ok(warning.message.includes( 26 '2 event-type listeners added to [FakeInput].')); 27})); 28 29e.on('event-type', () => {}); 30e.on('event-type', () => {}); // Trigger warning. 31e.on('event-type', () => {}); // Verify that warning is emitted only once. 32