| import type { Config } from '@oclif/core'; |
| import { mock } from 'jest-mock-extended'; |
| import type { Class } from 'n8n-core'; |
|
|
| import type { BaseCommand } from '@/commands/base-command'; |
| import { MessageEventBus } from '@/eventbus/message-event-bus/message-event-bus'; |
| import { TelemetryEventRelay } from '@/events/relays/telemetry.event-relay'; |
| import { mockInstance } from '@test/mocking'; |
|
|
| import * as testDb from '../test-db'; |
|
|
| mockInstance(MessageEventBus); |
|
|
| export const setupTestCommand = <T extends BaseCommand>(Command: Class<T>) => { |
| const config = mock<Config>(); |
| config.runHook.mockResolvedValue({ successes: [], failures: [] }); |
|
|
| |
| process.once = jest.fn(); |
| process.exit = jest.fn() as never; |
|
|
| beforeAll(async () => { |
| await testDb.init(); |
| }); |
|
|
| beforeEach(() => { |
| jest.clearAllMocks(); |
| mockInstance(TelemetryEventRelay); |
| }); |
|
|
| afterAll(async () => { |
| await testDb.terminate(); |
|
|
| jest.restoreAllMocks(); |
| }); |
|
|
| const run = async (argv: string[] = []) => { |
| const command = new Command(argv, config); |
| await command.init(); |
| await command.run(); |
| return command; |
| }; |
|
|
| return { run }; |
| }; |
|
|