CoolFace
Datasetpublic

basant307/AI_Governance_Project

sourceHugging Faceapache-2.0updated 2mo agoView on Hugging Face
0likes48downloads
once.js84 linesDownload Raw Back to tests
1// Copyright Joyent, Inc. and other Node contributors.2//3// Permission is hereby granted, free of charge, to any person obtaining a4// copy of this software and associated documentation files (the5// "Software"), to deal in the Software without restriction, including6// without limitation the rights to use, copy, modify, merge, publish,7// distribute, sublicense, and/or sell copies of the Software, and to permit8// persons to whom the Software is furnished to do so, subject to the9// following conditions:10//11// The above copyright notice and this permission notice shall be included12// in all copies or substantial portions of the Software.13//14// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS15// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF16// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN17// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,18// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR19// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE20// USE OR OTHER DEALINGS IN THE SOFTWARE.21 22var common = require('./common');23var assert = require('assert');24var EventEmitter = require('../');25 26var e = new EventEmitter();27 28e.once('hello', common.mustCall());29 30e.emit('hello', 'a', 'b');31e.emit('hello', 'a', 'b');32e.emit('hello', 'a', 'b');33e.emit('hello', 'a', 'b');34 35function remove() {36  assert.fail('once->foo should not be emitted');37}38 39e.once('foo', remove);40e.removeListener('foo', remove);41e.emit('foo');42 43e.once('e', common.mustCall(function() {44  e.emit('e');45}));46 47e.once('e', common.mustCall());48 49e.emit('e');50 51// Verify that the listener must be a function52assert.throws(function() {53  var ee = new EventEmitter();54 55  ee.once('foo', null);56}, /^TypeError: The "listener" argument must be of type Function. Received type object$/);57 58{59  // once() has different code paths based on the number of arguments being60  // emitted. Verify that all of the cases are covered.61  var maxArgs = 4;62 63  for (var i = 0; i <= maxArgs; ++i) {64    var ee = new EventEmitter();65    var args = ['foo'];66 67    for (var j = 0; j < i; ++j)68      args.push(j);69 70    ee.once('foo', common.mustCall(function() {71      var params = Array.prototype.slice.call(arguments);72      var restArgs = args.slice(1);73      assert.ok(Array.isArray(params));74      assert.strictEqual(params.length, restArgs.length);75      for (var index = 0; index < params.length; index++) {76        var param = params[index];77        assert.strictEqual(param, restArgs[index]);78      }79  	}));80 81    EventEmitter.prototype.emit.apply(ee, args);82  }83}84 
basant307/AI_Governance_Project · CoolFace