mock-xmlhttprequest
Version:
XMLHttpRequest mock for testing
69 lines (67 loc) • 3.09 kB
text/typescript
/**
* mock-xmlhttprequest v8.4.1
* (c) 2025 Bertrand Guay-Paquet
* @license MIT
*/
/**
* Implementation of XMLHttpRequestEventTarget. A target for dispatching events.
*
* See https://xhr.spec.whatwg.org/#xmlhttprequesteventtarget
*/
export default class XhrEventTarget implements XMLHttpRequestEventTarget {
private _eventContext;
private _listeners;
constructor(eventContext?: XMLHttpRequestEventTarget);
get onabort(): EventHandlerProperty | null;
set onabort(value: EventHandlerProperty | null);
get onerror(): EventHandlerProperty | null;
set onerror(value: EventHandlerProperty | null);
get onload(): EventHandlerProperty | null;
set onload(value: EventHandlerProperty | null);
get onloadend(): EventHandlerProperty | null;
set onloadend(value: EventHandlerProperty | null);
get onloadstart(): EventHandlerProperty | null;
set onloadstart(value: EventHandlerProperty | null);
get onprogress(): EventHandlerProperty | null;
set onprogress(value: EventHandlerProperty | null);
get ontimeout(): EventHandlerProperty | null;
set ontimeout(value: EventHandlerProperty | null);
/**
* @returns Whether any event listener is registered
*/
hasListeners(): boolean;
/**
* Add an event listener.
* See https://dom.spec.whatwg.org/#dom-eventtarget-addeventlistener
*
* @param type Event type ('load', 'abort', etc)
* @param listener Listener callback
* @param options Options object or the useCapture flag
*/
addEventListener<K extends keyof XMLHttpRequestEventTargetEventMap>(type: K, listener: (this: XMLHttpRequestEventTarget, ev: XMLHttpRequestEventTargetEventMap[K]) => unknown, options?: boolean | AddEventListenerOptions): void;
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
/**
* Remove an event listener.
* See https://dom.spec.whatwg.org/#dom-eventtarget-removeeventlistener
*
* @param type Event type ('load', 'abort', etc)
* @param listener Listener callback
* @param options Options object or the useCapture flag
*/
removeEventListener<K extends keyof XMLHttpRequestEventTargetEventMap>(type: K, listener: (this: XMLHttpRequestEventTarget, ev: XMLHttpRequestEventTargetEventMap[K]) => unknown, options?: boolean | EventListenerOptions): void;
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
/**
* Calls all the listeners for the event.
*
* @param event Event
* @returns Always true since none of the xhr event are cancelable
*/
dispatchEvent(event: Event | EventMock): boolean;
protected _getEventHandlerProperty(event: string): EventHandlerProperty | null;
protected _setEventHandlerProperty(event: string, value?: EventHandlerProperty | null): void;
}
interface EventMock {
type: string;
}
type EventHandlerProperty = ((this: XMLHttpRequest, ev: ProgressEvent) => unknown);
export {};