@travetto/test
Version:
Declarative test framework
25 lines (20 loc) • 751 B
text/typescript
import { IpcChannel } from '@travetto/worker';
import type { TestEvent, TestRemoveEvent } from '../../model/event.ts';
import type { TestConsumerShape } from '../types.ts';
import { TestConsumer } from '../decorator.ts';
import { CommunicationUtil } from '../../communication.ts';
/**
* Triggers each event as an IPC command to a parent process
*/
()
export class ExecutionEmitter extends IpcChannel<TestEvent> implements TestConsumerShape {
sendPayload(payload: unknown & { type: string }): void {
this.send(payload.type, CommunicationUtil.serializeToObject(payload));
}
onEvent(event: TestEvent): void {
this.sendPayload(event);
}
onRemoveEvent(event: TestRemoveEvent): void {
this.sendPayload(event);
}
}