mirror of https://gitee.com/openkylin/nodejs.git
32 lines
916 B
JavaScript
32 lines
916 B
JavaScript
// Flags: --no-warnings
|
|
// The flag suppresses stderr output but the warning event will still emit
|
|
'use strict';
|
|
|
|
const common = require('../common');
|
|
const events = require('events');
|
|
const assert = require('assert');
|
|
|
|
class FakeInput extends events.EventEmitter {
|
|
resume() {}
|
|
pause() {}
|
|
write() {}
|
|
end() {}
|
|
}
|
|
|
|
const e = new FakeInput();
|
|
e.setMaxListeners(1);
|
|
|
|
process.on('warning', common.mustCall((warning) => {
|
|
assert.ok(warning instanceof Error);
|
|
assert.strictEqual(warning.name, 'MaxListenersExceededWarning');
|
|
assert.strictEqual(warning.emitter, e);
|
|
assert.strictEqual(warning.count, 2);
|
|
assert.strictEqual(warning.type, 'event-type');
|
|
assert.ok(warning.message.includes(
|
|
'2 event-type listeners added to [FakeInput].'));
|
|
}));
|
|
|
|
e.on('event-type', () => {});
|
|
e.on('event-type', () => {}); // Trigger warning.
|
|
e.on('event-type', () => {}); // Verify that warning is emitted only once.
|