UNPKG

@travetto/test

Version:

Declarative test framework

43 lines (34 loc) 1.28 kB
import { castTo, Runtime } from '@travetto/runtime'; import { AllViewSymbol } from '@travetto/schema/src/internal/types'; import { SchemaRegistry } from '@travetto/schema'; import { TestConsumerRegistry } from '../../src/consumer/registry'; import type { RunState } from '../../src/execute/types'; /** * Run tests given the input state * @param opts */ export async function runTests(opts: RunState): Promise<void> { const { RunnerUtil } = await import('../../src/execute/util'); const { Runner } = await import('../../src/execute/runner'); RunnerUtil.registerCleanup('runner'); try { const res = await new Runner(opts).run(); process.exitCode = res ? 0 : 1; } catch (err) { console.error('Test Worker Failed', { error: err }); process.exitCode = 1; } } export async function selectConsumer(inst: { format?: string }) { await TestConsumerRegistry.manualInit(); let types = TestConsumerRegistry.getTypes(); if (inst.format?.includes('/')) { await Runtime.importFrom(inst.format); types = TestConsumerRegistry.getTypes(); } const cls = inst.constructor; SchemaRegistry.get(castTo(cls)).views[AllViewSymbol].schema.format.enum = { message: `{path} is only allowed to be "${types.join('" or "')}"`, values: types }; }