learning_ai_common_plat/services/platform-service/src/lib/event-bus.test.ts

48 lines
1.4 KiB
TypeScript

import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest';
import { join } from 'node:path';
import { tmpdir } from 'node:os';
const ORIGINAL_ENV = { ...process.env };
describe('event bus backend wiring', () => {
beforeEach(() => {
vi.resetModules();
process.env = {
...ORIGINAL_ENV,
COSMOS_ENDPOINT: 'http://localhost:8081',
COSMOS_KEY: 'test-key',
JWT_SECRET: 'test-jwt-secret',
};
});
afterEach(async () => {
vi.resetModules();
process.env = { ...ORIGINAL_ENV };
});
it('uses the durable event bus when configured for file backend', async () => {
process.env.EVENT_BUS_BACKEND = 'file';
process.env.EVENT_BUS_FILE = join(tmpdir(), `platform-events-${Date.now()}.json`);
const [{ DurableEventBus }, eventBusModule] = await Promise.all([
import('@bytelyst/events'),
import('./event-bus.js'),
]);
expect(eventBusModule.bus).toBeInstanceOf(DurableEventBus);
eventBusModule.startEventBus();
await eventBusModule.stopEventBus();
});
it('uses the in-memory event bus when configured for memory backend', async () => {
process.env.EVENT_BUS_BACKEND = 'memory';
const [{ EventBus }, eventBusModule] = await Promise.all([
import('@bytelyst/events'),
import('./event-bus.js'),
]);
expect(eventBusModule.bus).toBeInstanceOf(EventBus);
});
});