guardz-event
Version:
Type-safe event handling with runtime validation using guardz for unsafe data from 3rd parties
68 lines • 1.92 kB
JavaScript
;
// Jest setup file for guardz-event tests
// Mock DOM environment for jsdom
Object.defineProperty(window, 'addEventListener', {
value: jest.fn(),
writable: true,
});
Object.defineProperty(window, 'removeEventListener', {
value: jest.fn(),
writable: true,
});
// Mock MessageEvent
global.MessageEvent = class MessageEvent extends Event {
constructor(type, init) {
super(type);
this.data = init?.data;
this.origin = init?.origin || '';
this.lastEventId = init?.lastEventId || '';
this.ports = init?.ports || [];
}
};
// Mock CustomEvent
global.CustomEvent = class CustomEvent extends Event {
constructor(type, init) {
super(type);
this.detail = init?.detail;
}
};
// Mock StorageEvent
global.StorageEvent = class StorageEvent extends Event {
constructor(type, init) {
super(type);
this.key = init?.key || null;
this.oldValue = init?.oldValue || null;
this.newValue = init?.newValue || null;
this.url = init?.url || '';
this.storageArea = init?.storageArea || null;
}
};
// Mock WebSocket
global.WebSocket = class WebSocket extends EventTarget {
constructor(url) {
super();
this.url = url;
this.readyState = 1; // OPEN
}
addEventListener(type, listener) {
super.addEventListener(type, listener);
}
removeEventListener(type, listener) {
super.removeEventListener(type, listener);
}
};
// Mock EventSource
global.EventSource = class EventSource extends EventTarget {
constructor(url) {
super();
this.url = url;
this.readyState = 1; // OPEN
}
addEventListener(type, listener) {
super.addEventListener(type, listener);
}
removeEventListener(type, listener) {
super.removeEventListener(type, listener);
}
};
//# sourceMappingURL=setup.js.map