@travetto/test
Version:
Declarative test framework
26 lines (21 loc) • 741 B
text/typescript
import { Assertion, TestConfig, TestResult } from './test.ts';
import { SuiteConfig, SuiteResult } from './suite.ts';
/**
* Targets
*/
export type EventEntity = 'test' | 'suite' | 'assertion';
/**
* Phases
*/
export type EventPhase = 'before' | 'after';
type EventTpl<T extends EventEntity, P extends EventPhase, V extends {}> =
{ type: T, phase: P, metadata?: Record<string, unknown> } & V;
/**
* Different test event shapes
*/
export type TestEvent =
EventTpl<'assertion', 'after', { assertion: Assertion }> |
EventTpl<'test', 'before', { test: TestConfig }> |
EventTpl<'test', 'after', { test: TestResult }> |
EventTpl<'suite', 'before', { suite: SuiteConfig }> |
EventTpl<'suite', 'after', { suite: SuiteResult }>;