You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

54 lines
1.4 KiB
TypeScript

import { describe, test, expect, mock } 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']
};
expect(() => WebhookManager['validateResponse'](validResponse)).not.toThrow();
});
test('should reject disabled webhook response', () => {
const invalidResponse = {
id: 'test-id',
url: 'https://test-webhook',
enabled: false,
events: ['APPLICATION_STARTUP']
};
expect(() => WebhookManager['validateResponse'](invalidResponse)).toThrow();
});
});