UNPKG

polyv-live-cli

Version:

CLI tool for managing PolyV live streaming services.

112 lines 3.67 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.mockServiceConfig = exports.mockAuthConfig = void 0; exports.getAuthAdapterMockDefinition = getAuthAdapterMockDefinition; exports.getConfigManagerMockDefinition = getConfigManagerMockDefinition; exports.createTestProgram = createTestProgram; exports.mockAuthSuccess = mockAuthSuccess; exports.mockAuthFailure = mockAuthFailure; exports.mockConfigError = mockConfigError; exports.createMockHandler = createMockHandler; exports.suppressConsole = suppressConsole; exports.mockProcessExit = mockProcessExit; exports.tick = tick; exports.parseCommandAsync = parseCommandAsync; exports.createMockParentOptions = createMockParentOptions; const commander_1 = require("commander"); exports.mockAuthConfig = { appId: 'test-app-id', appSecret: 'test-app-secret', userId: 'test-user-id', }; exports.mockServiceConfig = { baseUrl: 'https://api.polyv.net', timeout: 30000, debug: false, }; function getAuthAdapterMockDefinition() { return { authAdapter: { tryGetAuthConfig: jest.fn(), getStatusMessage: jest.fn().mockReturnValue('No authentication configured'), }, }; } function getConfigManagerMockDefinition() { return { configManager: { load: jest.fn(), }, }; } function createTestProgram() { return new commander_1.Command(); } function mockAuthSuccess(authAdapter, configManager, options = {}) { const authResult = { config: exports.mockAuthConfig, source: options.source || 'environment', accountName: options.accountName ?? null, }; const configResult = { config: { baseUrl: options.baseUrl || exports.mockServiceConfig.baseUrl, timeout: options.timeout ?? exports.mockServiceConfig.timeout, debug: options.debug ?? exports.mockServiceConfig.debug, }, }; authAdapter.tryGetAuthConfig.mockReturnValue(authResult); configManager.load.mockResolvedValue(configResult); } function mockAuthFailure(authAdapter, message = 'No authentication configured') { authAdapter.tryGetAuthConfig.mockReturnValue(null); authAdapter.getStatusMessage.mockReturnValue(message); } function mockConfigError(configManager, errorMessage) { configManager.load.mockRejectedValue(new Error(errorMessage)); } function createMockHandler(methods) { const handler = {}; for (const [key, value] of Object.entries(methods)) { handler[key] = jest.fn().mockResolvedValue(value); } return handler; } function suppressConsole() { const originalLog = console.log; const originalError = console.error; const originalWarn = console.warn; console.log = jest.fn(); console.error = jest.fn(); console.warn = jest.fn(); return () => { console.log = originalLog; console.error = originalError; console.warn = originalWarn; }; } function mockProcessExit() { const originalExit = process.exit; process.exit = jest.fn().mockImplementation((code) => { throw new Error(`process.exit:${code ?? 0}`); }); return () => { process.exit = originalExit; }; } function tick(ms = 0) { return new Promise(resolve => setTimeout(resolve, ms)); } async function parseCommandAsync(program, args) { await program.parseAsync(['node', 'test', ...args], { from: 'user' }); } function createMockParentOptions(options = {}) { return { appId: undefined, appSecret: undefined, userId: undefined, verbose: false, ...options, }; } //# sourceMappingURL=test-helpers.js.map