reisarod's picture
Upload folder using huggingface_hub
5fae594 verified
function spiedPubSub() {
var realPubSub = pubSub();
function fakedPubSub( eventName ) {
var single = realPubSub(eventName);
if( !single.emit.isSpy ) {
spyOn( single, 'emit' ).andCallThrough();
spyOn( single, 'on' ).andCallThrough();
spyOn( single, 'un' ).andCallThrough();
}
return single;
}
fakedPubSub.emit = realPubSub.emit;
fakedPubSub.on = realPubSub.on;
fakedPubSub.un = realPubSub.un;
return fakedPubSub;
}
function fakePubSub( eventNames ) {
var eventTypes = {};
var eventsEmitted = [];
var eventNamesEmitted = [];
var eventTypesEmitted = {};
var callCount = {};
function record(eventName){
return function() {
eventsEmitted.push({
type: eventName,
args: arguments
});
eventNamesEmitted.push(eventName);
eventTypesEmitted[eventName].push(arguments);
callCount[eventName]++;
}
}
eventNames.forEach( function( eventName ){
eventTypes[eventName] = {
'emit': jasmine.createSpy(eventName + '/emit')
.andCallFake(record(eventName))
, 'on': jasmine.createSpy(eventName + '/on')
, 'un': jasmine.createSpy(eventName + '/un')
};
eventTypesEmitted[eventName] = [];
callCount[eventName] = 0;
});
function bus( eventName ) {
return eventTypes[eventName];
}
bus.events = eventsEmitted;
bus.eventNames = eventNamesEmitted;
bus.eventTypesEmitted = eventTypesEmitted;
bus.callCount = callCount;
['emit', 'on'].forEach(function(methodName){
bus[methodName] = varArgs(function(eventName, parameters){
apply( parameters, eventTypes[eventName][methodName]);
});
})
return bus;
}