48 lines
1.4 KiB
TypeScript
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);
|
|
});
|
|
});
|