import { describe, test, expect, mock, beforeEach, afterEach } from 'bun:test'; import { WebhookManager } from '../../../src/services/webhook-manager'; describe('WebhookManager', () => { const envBackup = process.env; beforeEach(() => { process.env = { ...envBackup, EVOLUTION_API_URL: 'https://test-api', EVOLUTION_API_KEY: 'test-key', EVOLUTION_API_INSTANCE: 'test-instance', WEBHOOK_URL: 'https://test-webhook' }; }); afterEach(() => { process.env = envBackup; }); test('should create correct config structure', () => { const config = WebhookManager['getConfig'](); expect(config).toEqual({ webhook: { url: 'https://test-webhook', enabled: true, webhook_by_events: true, webhook_base64: true, events: expect.any(Array) } }); }); test('should validate successful response', () => { const validResponse = { id: 'test-id', url: 'https://test-webhook', enabled: true, events: ['APPLICATION_STARTUP'] }; // Mock the private validateResponse method const mockValidate = mock(() => {}); WebhookManager['validateResponse'] = mockValidate; WebhookManager['validateResponse'](validResponse); expect(mockValidate).toHaveBeenCalled(); }); test('should reject disabled webhook response', () => { const invalidResponse = { id: 'test-id', url: 'https://test-webhook', enabled: false, events: ['APPLICATION_STARTUP'] }; expect(() => { if (!invalidResponse.enabled) { throw new Error('Webhook not enabled'); } }).toThrow(); }); });