quoad
Version:
Serenity/JS: Next generation acceptance testing library for modern web applications.
26 lines (20 loc) • 671 B
text/typescript
import { DomainEvent } from '@serenity-js/core/lib/events';
import { Stage, StageCrewMember } from '@serenity-js/core/lib/stage';
import { JSONObject } from 'tiny-types';
import { DTO } from './DTO';
export class ChildProcessReporter implements StageCrewMember {
private stage?: Stage;
assignedTo(stage: Stage): StageCrewMember {
this.stage = stage;
return this;
}
notifyOf(event: DomainEvent): void {
process.send(this.serialised(event));
}
private serialised(event: DomainEvent): DTO {
return ({
type: event.constructor.name,
value: event.toJSON() as JSONObject,
});
}
}