UNPKG

woolball-client

Version:

Client-side library for Woolball enabling secure browser resource sharing for distributed AI task processing

62 lines (61 loc) 1.99 kB
"use strict"; /** * Mock implementation for Web Worker API in Node.js environment * This file provides mocks for the Worker class and related functionality * to enable testing of worker-related code in Jest */ Object.defineProperty(exports, "__esModule", { value: true }); exports.cleanupWorkerMock = exports.setupWorkerMock = exports.MockWorker = void 0; // Mock Worker class for testing class MockWorker { constructor(url) { this.url = url; this.listeners = { message: [], error: [] }; } addEventListener(type, callback) { if (!this.listeners[type]) { this.listeners[type] = []; } this.listeners[type].push(callback); } removeEventListener(type, callback) { if (this.listeners[type]) { this.listeners[type] = this.listeners[type].filter(cb => cb !== callback); } } postMessage(data) { // Simulate successful response after a short delay setTimeout(() => { const response = { data: { text: 'mocked transcription result' } }; this.listeners.message.forEach(callback => callback(response)); }, 20); } // Add a method to directly set the onmessage handler set onmessage(handler) { this.addEventListener('message', handler); } // Add a method to directly set the onerror handler set onerror(handler) { this.addEventListener('error', handler); } // Method to simulate error triggerError(error) { this.listeners.error.forEach(callback => callback(error)); } } exports.MockWorker = MockWorker; // Global mock setup function setupWorkerMock() { // @ts-ignore - Override global Worker class global.Worker = MockWorker; } exports.setupWorkerMock = setupWorkerMock; // Cleanup function function cleanupWorkerMock() { // @ts-ignore - Restore global Worker class delete global.Worker; } exports.cleanupWorkerMock = cleanupWorkerMock;