UNPKG

@serenity-js/core

Version:

The core Serenity/JS framework, providing the Screenplay Pattern interfaces, as well as the test reporting and integration infrastructure

33 lines (29 loc) 1.12 kB
import type { JSONObject } from 'tiny-types'; import { ensure, isDefined } from 'tiny-types'; import { CorrelationId, ScenarioDetails, ScenarioParameters } from '../model'; import { Timestamp } from '../screenplay'; import { DomainEvent } from './DomainEvent'; /** * @group Events */ export class SceneParametersDetected extends DomainEvent { public static fromJSON(o: JSONObject): SceneParametersDetected { return new SceneParametersDetected( CorrelationId.fromJSON(o.sceneId as string), ScenarioDetails.fromJSON(o.details as JSONObject), ScenarioParameters.fromJSON(o.parameters as JSONObject), Timestamp.fromJSON(o.timestamp as string), ); } constructor( public readonly sceneId: CorrelationId, public readonly details: ScenarioDetails, public readonly parameters: ScenarioParameters, timestamp?: Timestamp, ) { super(timestamp); ensure('sceneId', sceneId, isDefined()); ensure('details', details, isDefined()); ensure('parameters', parameters, isDefined()); } }