@cratis/chronicle 6.29.0 → 6.30.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/testing/ReactorScenario.d.ts +3 -0
- package/dist/testing/ReactorScenario.d.ts.map +1 -1
- package/dist/testing/ReactorScenario.js +2 -0
- package/dist/testing/ReactorScenario.js.map +1 -1
- package/dist/testing/ReadModelScenario.d.ts +11 -0
- package/dist/testing/ReadModelScenario.d.ts.map +1 -1
- package/dist/testing/ReadModelScenario.js +37 -8
- package/dist/testing/ReadModelScenario.js.map +1 -1
- package/package.json +1 -1
- package/testing/ReactorScenario.ts +2 -0
- package/testing/ReadModelScenario.composition.spec.ts +111 -0
- package/testing/ReadModelScenario.ts +41 -7
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { Constructor } from '@cratis/fundamentals';
|
|
2
|
+
import type { AppendedEvent } from '../events/AppendedEvent.js';
|
|
2
3
|
import type { ReactorDeliveryResult } from './ReactorDeliveryResult.js';
|
|
3
4
|
import type { ReactorScenarioOptions } from './ReactorScenarioOptions.js';
|
|
4
5
|
import type { RecordedReactorSideEffect } from './RecordedReactorSideEffect.js';
|
|
@@ -34,6 +35,8 @@ export declare class ReactorScenario {
|
|
|
34
35
|
get produced(): readonly unknown[];
|
|
35
36
|
get sideEffects(): readonly RecordedReactorSideEffect[];
|
|
36
37
|
get results(): readonly ReactorDeliveryResult[];
|
|
38
|
+
/** Committed input and explicit service appends; recorded returned effects are not part of this history. */
|
|
39
|
+
get appendedEvents(): readonly AppendedEvent[];
|
|
37
40
|
/** Assertion view, deliberately not a callable Promise-like `then`. */
|
|
38
41
|
get then(): {
|
|
39
42
|
readonly produced: readonly unknown[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReactorScenario.d.ts","sourceRoot":"","sources":["../../testing/ReactorScenario.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"ReactorScenario.d.ts","sourceRoot":"","sources":["../../testing/ReactorScenario.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAOxD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAgBhE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAC1E,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAKhF,6FAA6F;AAC7F,qBAAa,eAAe;IAkBZ,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAAe,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAjB7E,QAAQ,CAAC,KAAK,EAAE;QAAE,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG;YAAE,MAAM,CAAC,GAAG,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;SAAE,CAAA;KAAE,CAAC;IAC/F,QAAQ,CAAC,IAAI,EAAE;QAAE,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG;YAAE,MAAM,CAAC,GAAG,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;SAAE,CAAA;KAAE,CAAC;IAC9F,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAgB;IACxC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA0C;IACnE,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAyB;IACrD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAA2B;IACtD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAc;IACrC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAyB;IACrD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAmC;IAC5D,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA+B;IACxD,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,OAAO,CAAS;IAExB,OAAO,CAAC,SAAS,CAAC,CAAwB;IAC1C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAkD;IACnF,OAAO,CAAC,cAAc,CAAK;IAE3B,YAA6B,QAAQ,EAAE,WAAW,EAAmB,QAAQ,GAAE,sBAA2B,EA+BzG;IAED,OAAO,CAAC,aAAa;IAqDrB,IAAI,QAAQ,IAAI,SAAS,OAAO,EAAE,CAAqE;IACvG,IAAI,WAAW,IAAI,SAAS,yBAAyB,EAAE,CAA8C;IACrG,IAAI,OAAO,IAAI,SAAS,qBAAqB,EAAE,CAA8C;IAC7F,4GAA4G;IAC5G,IAAI,cAAc,IAAI,SAAS,aAAa,EAAE,CAAwC;IACtF,uEAAuE;IACvE,IAAI,IAAI,IAAI;QAAE,QAAQ,CAAC,QAAQ,EAAE,SAAS,OAAO,EAAE,CAAC;QAAC,QAAQ,CAAC,WAAW,EAAE,SAAS,yBAAyB,EAAE,CAAC;QAC5G,QAAQ,CAAC,OAAO,EAAE,SAAS,qBAAqB,EAAE,CAAA;KAAE,CAEvD;IACD,kBAAkB,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE,SAAS,GAAE,CAAC,KAAK,EAAE,CAAC,KAAK,OAAoB,GAAG,IAAI,CAI5G;IACD,qBAAqB,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI,CAI1C;IAED,0FAA0F;IACpF,MAAM,IAAI,OAAO,CAAC,KAAK,CAAC,CAE7B;IACK,SAAS,IAAI,OAAO,CAAC,KAAK,CAAC,CAEhC;YAEa,OAAO;IAyBrB,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,KAAK;IAUb,OAAO,CAAC,eAAe;YAIT,OAAO;YAuDP,MAAM;CAgBvB"}
|
|
@@ -136,6 +136,8 @@ export class ReactorScenario {
|
|
|
136
136
|
get produced() { return Object.freeze(this._effects.map(effect => effect.value)); }
|
|
137
137
|
get sideEffects() { return Object.freeze([...this._effects]); }
|
|
138
138
|
get results() { return Object.freeze([...this._results]); }
|
|
139
|
+
/** Committed input and explicit service appends; recorded returned effects are not part of this history. */
|
|
140
|
+
get appendedEvents() { return this._events.appendedEvents; }
|
|
139
141
|
/** Assertion view, deliberately not a callable Promise-like `then`. */
|
|
140
142
|
get then() {
|
|
141
143
|
return { produced: this.produced, sideEffects: this.sideEffects, results: this.results };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReactorScenario.js","sourceRoot":"","sources":["../../testing/ReactorScenario.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ReactorScenario.js","sourceRoot":"","sources":["../../testing/ReactorScenario.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,8 @@ import 'reflect-metadata';
|
|
|
2
2
|
import type { Constructor } from '@cratis/fundamentals';
|
|
3
3
|
import type { IClientArtifactsProvider } from '../artifacts/IClientArtifactsProvider.js';
|
|
4
4
|
import { ReadModelScenarioGivenBuilder } from './ReadModelScenarioGivenBuilder.js';
|
|
5
|
+
import type { EventScenario } from './EventScenario.js';
|
|
6
|
+
import type { ReactorScenario } from './ReactorScenario.js';
|
|
5
7
|
type ScenarioArtifacts = Pick<IClientArtifactsProvider, 'reducers' | 'eventTypes' | 'projections'> & Partial<Pick<IClientArtifactsProvider, 'readModels' | 'globalForHandlers'>>;
|
|
6
8
|
/**
|
|
7
9
|
* Folds seeded events through a reducer or a validated flat projection, without a Chronicle kernel.
|
|
@@ -13,6 +15,7 @@ export declare class ReadModelScenario<TReadModel extends object> {
|
|
|
13
15
|
private readonly _modelName;
|
|
14
16
|
private readonly _events;
|
|
15
17
|
private _results;
|
|
18
|
+
private _observed;
|
|
16
19
|
/** Selects the reducer (when present) or a single applicable compiled projection. */
|
|
17
20
|
constructor(readModelType: Constructor<TReadModel>, artifacts?: ScenarioArtifacts);
|
|
18
21
|
/** Fluent entry point for event history. */
|
|
@@ -23,9 +26,17 @@ export declare class ReadModelScenario<TReadModel extends object> {
|
|
|
23
26
|
instanceForEventSourceId(id: string): Promise<TReadModel | null>;
|
|
24
27
|
/** Distinguishes a model removed by a reducer from one never created. */
|
|
25
28
|
wasDeletedForEventSourceId(id: string): Promise<boolean>;
|
|
29
|
+
/**
|
|
30
|
+
* Reads the committed history of an EventScenario or ReactorScenario instead of seeded events.
|
|
31
|
+
* Every read replays that shared sequence as it is at the time of the read.
|
|
32
|
+
*/
|
|
33
|
+
observe(source: EventScenario | ReactorScenario): this;
|
|
26
34
|
/** Collects events for a source; subsequent reads replay the complete seeded history. */
|
|
27
35
|
collectEventsFor(id: string, events: readonly object[]): void;
|
|
28
36
|
private process;
|
|
37
|
+
private replay;
|
|
38
|
+
private observedEvents;
|
|
39
|
+
private mixedHistory;
|
|
29
40
|
}
|
|
30
41
|
export {};
|
|
31
42
|
//# sourceMappingURL=ReadModelScenario.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReadModelScenario.d.ts","sourceRoot":"","sources":["../../testing/ReadModelScenario.ts"],"names":[],"mappings":"AAGA,OAAO,kBAAkB,CAAC;AAE1B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAExD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,0CAA0C,CAAC;AAazF,OAAO,EAAE,6BAA6B,EAAE,MAAM,oCAAoC,CAAC;
|
|
1
|
+
{"version":3,"file":"ReadModelScenario.d.ts","sourceRoot":"","sources":["../../testing/ReadModelScenario.ts"],"names":[],"mappings":"AAGA,OAAO,kBAAkB,CAAC;AAE1B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAExD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,0CAA0C,CAAC;AAazF,OAAO,EAAE,6BAA6B,EAAE,MAAM,oCAAoC,CAAC;AAKnF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAI5D,KAAK,iBAAiB,GAAG,IAAI,CAAC,wBAAwB,EAAE,UAAU,GAAG,YAAY,GAAG,aAAa,CAAC,GAC9F,OAAO,CAAC,IAAI,CAAC,wBAAwB,EAAE,YAAY,GAAG,mBAAmB,CAAC,CAAC,CAAC;AAEhF;;;;GAIG;AACH,qBAAa,iBAAiB,CAAC,UAAU,SAAS,MAAM;IACpD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAkC;IAC7D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAuB;IAC/C,OAAO,CAAC,QAAQ,CAA+D;IAC/E,OAAO,CAAC,SAAS,CAA8C;IAE/D,qFAAqF;IACrF,YAAY,aAAa,EAAE,WAAW,CAAC,UAAU,CAAC,EAAE,SAAS,CAAC,EAAE,iBAAiB,EAwChF;IAED,4CAA4C;IAC5C,IAAI,KAAK,IAAI,6BAA6B,CAAC,UAAU,CAAC,CAErD;IAED,yEAAyE;IACzE,IAAI,QAAQ,IAAI,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAQzC;IAED,4FAA4F;IACtF,wBAAwB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAErE;IAED,yEAAyE;IACnE,0BAA0B,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAE7D;IAED;;;OAGG;IACH,OAAO,CAAC,MAAM,EAAE,aAAa,GAAG,eAAe,GAAG,IAAI,CAKrD;IAED,yFAAyF;IACzF,gBAAgB,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI,CA2B5D;IAED,OAAO,CAAC,OAAO;IAMf,OAAO,CAAC,MAAM;IAOd,OAAO,CAAC,cAAc;IAYtB,OAAO,CAAC,YAAY;CAIvB"}
|
|
@@ -29,6 +29,7 @@ export class ReadModelScenario {
|
|
|
29
29
|
_modelName;
|
|
30
30
|
_events = [];
|
|
31
31
|
_results;
|
|
32
|
+
_observed;
|
|
32
33
|
/** Selects the reducer (when present) or a single applicable compiled projection. */
|
|
33
34
|
constructor(readModelType, artifacts) {
|
|
34
35
|
this._modelName = readModelType.name;
|
|
@@ -93,8 +94,21 @@ export class ReadModelScenario {
|
|
|
93
94
|
async wasDeletedForEventSourceId(id) {
|
|
94
95
|
return (await this.process()).get(id)?.deleted ?? false;
|
|
95
96
|
}
|
|
97
|
+
/**
|
|
98
|
+
* Reads the committed history of an EventScenario or ReactorScenario instead of seeded events.
|
|
99
|
+
* Every read replays that shared sequence as it is at the time of the read.
|
|
100
|
+
*/
|
|
101
|
+
observe(source) {
|
|
102
|
+
if (this._observed || this._events.length)
|
|
103
|
+
throw this.mixedHistory();
|
|
104
|
+
this._observed = source;
|
|
105
|
+
this._results = undefined;
|
|
106
|
+
return this;
|
|
107
|
+
}
|
|
96
108
|
/** Collects events for a source; subsequent reads replay the complete seeded history. */
|
|
97
109
|
collectEventsFor(id, events) {
|
|
110
|
+
if (this._observed)
|
|
111
|
+
throw this.mixedHistory();
|
|
98
112
|
for (const event of events) {
|
|
99
113
|
const metadata = getEventTypeMetadata(event.constructor);
|
|
100
114
|
if (!metadata)
|
|
@@ -123,15 +137,30 @@ export class ReadModelScenario {
|
|
|
123
137
|
this._results = undefined;
|
|
124
138
|
}
|
|
125
139
|
process() {
|
|
126
|
-
if (
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
if (!(this._processor instanceof ProjectionReadModelProcessor) || error instanceof UnsupportedProjectionOperation)
|
|
130
|
-
throw error;
|
|
131
|
-
throw new Error(`Projection replay for read model '${this._modelName}' failed: ${error instanceof Error ? error.message : String(error)}`, { cause: error });
|
|
132
|
-
});
|
|
133
|
-
}
|
|
140
|
+
if (this._observed)
|
|
141
|
+
return this.replay(this.observedEvents(this._observed));
|
|
142
|
+
this._results ??= this.replay([...this._events]);
|
|
134
143
|
return this._results;
|
|
135
144
|
}
|
|
145
|
+
replay(events) {
|
|
146
|
+
return this._processor.process(events).catch(error => {
|
|
147
|
+
if (!(this._processor instanceof ProjectionReadModelProcessor) || error instanceof UnsupportedProjectionOperation)
|
|
148
|
+
throw error;
|
|
149
|
+
throw new Error(`Projection replay for read model '${this._modelName}' failed: ${error instanceof Error ? error.message : String(error)}`, { cause: error });
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
observedEvents(source) {
|
|
153
|
+
return source.appendedEvents.map(event => {
|
|
154
|
+
const { eventSourceType = 'Default', eventStreamType = 'All', eventStreamId = 'Default' } = event.context;
|
|
155
|
+
// No fixture establishes how the evaluator should treat an explicitly routed event; the kernel decides.
|
|
156
|
+
if (eventSourceType !== 'Default' || eventStreamType !== 'All' || eventStreamId !== 'Default') {
|
|
157
|
+
throw new UnsupportedProjectionOperation(this._modelName, 'observe', `${eventSourceType}/${eventStreamType}/${eventStreamId}`, 'observed events must use the default event source type and stream; routed events require a kernel-backed test');
|
|
158
|
+
}
|
|
159
|
+
return { sourceId: event.context.eventSourceId, content: event.content, context: event.context };
|
|
160
|
+
});
|
|
161
|
+
}
|
|
162
|
+
mixedHistory() {
|
|
163
|
+
return new UnsupportedProjectionOperation(this._modelName, 'observe', 'given.events', 'a scenario replays either its own seeded events or one observed event sequence, not both');
|
|
164
|
+
}
|
|
136
165
|
}
|
|
137
166
|
//# sourceMappingURL=ReadModelScenario.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReadModelScenario.js","sourceRoot":"","sources":["../../testing/ReadModelScenario.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qGAAqG;AAErG,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,OAAO,EAAE,8BAA8B,EAAE,MAAM,gDAAgD,CAAC;AAEhG,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,EAAE,oBAAoB,EAAE,MAAM,wCAAwC,CAAC;AAC9E,OAAO,EAAE,2BAA2B,EAAE,MAAM,0CAA0C,CAAC;AACvF,OAAO,EAAE,+BAA+B,EAAE,MAAM,8CAA8C,CAAC;AAC/F,OAAO,EAAE,yBAAyB,EAAE,MAAM,wCAAwC,CAAC;AACnF,OAAO,EAAE,oBAAoB,EAAE,MAAM,wCAAwC,CAAC;AAC9E,OAAO,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAC;AAC5E,OAAO,EAAE,qBAAqB,EAAE,MAAM,0CAA0C,CAAC;AACjF,OAAO,EAAE,4BAA4B,EAAE,MAAM,gDAAgD,CAAC;AAC9F,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,uBAAuB,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AACrF,OAAO,EAAE,6BAA6B,EAAE,MAAM,oCAAoC,CAAC;AAGnF,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"ReadModelScenario.js","sourceRoot":"","sources":["../../testing/ReadModelScenario.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qGAAqG;AAErG,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,OAAO,EAAE,8BAA8B,EAAE,MAAM,gDAAgD,CAAC;AAEhG,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,EAAE,oBAAoB,EAAE,MAAM,wCAAwC,CAAC;AAC9E,OAAO,EAAE,2BAA2B,EAAE,MAAM,0CAA0C,CAAC;AACvF,OAAO,EAAE,+BAA+B,EAAE,MAAM,8CAA8C,CAAC;AAC/F,OAAO,EAAE,yBAAyB,EAAE,MAAM,wCAAwC,CAAC;AACnF,OAAO,EAAE,oBAAoB,EAAE,MAAM,wCAAwC,CAAC;AAC9E,OAAO,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAC;AAC5E,OAAO,EAAE,qBAAqB,EAAE,MAAM,0CAA0C,CAAC;AACjF,OAAO,EAAE,4BAA4B,EAAE,MAAM,gDAAgD,CAAC;AAC9F,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,uBAAuB,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AACrF,OAAO,EAAE,6BAA6B,EAAE,MAAM,oCAAoC,CAAC;AAGnF,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAI3E,OAAO,EAAE,4BAA4B,EAAE,MAAM,+CAA+C,CAAC;AAC7F,OAAO,EAAE,8BAA8B,EAAE,MAAM,iDAAiD,CAAC;AAKjG;;;;GAIG;AACH,MAAM,OAAO,iBAAiB;IACT,UAAU,CAAkC;IAC5C,UAAU,CAAS;IACnB,OAAO,GAAoB,EAAE,CAAC;IACvC,QAAQ,CAA+D;IACvE,SAAS,CAA8C;IAE/D,qFAAqF;IACrF,YAAY,aAAsC,EAAE,SAA6B;QAC7E,IAAI,CAAC,UAAU,GAAG,aAAa,CAAC,IAAI,CAAC;QACrC,MAAM,UAAU,GAAG,SAAS,IAAI,IAAI,8BAA8B,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QAC3F,MAAM,YAAY,GAAG,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,SAAS,KAAK,aAAa,CAAC,CAAC;QAC/G,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CAAC,2CAA2C,aAAa,CAAC,IAAI,IAAI,CAAC,CAAC;QACvF,CAAC;QACD,IAAI,YAAY,CAAC,MAAM,EAAE,CAAC;YACtB,IAAI,CAAC,UAAU,GAAG,IAAI,yBAAyB,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,UAAU,CAAC,CAAC;YACvG,OAAO;QACX,CAAC;QACD,MAAM,UAAU,GAAG,oBAAoB,CAAC,aAAa,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,uBAAuB,CAAC,aAAa,CAAC;YACvG,2BAA2B,CAAC,aAAa,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,+BAA+B,CAAC,aAAa,CAAC,CAAC,MAAM,GAAG,CAAC;YAClH,yBAAyB,CAAC,aAAa,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,oBAAoB,CAAC,aAAa,CAAC,KAAK,SAAS;YACxG,mBAAmB,CAAC,aAAa,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;QAClD,wFAAwF;QACxF,oFAAoF;QACpF,MAAM,WAAW,GAAG,UAAU,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;YACrD,MAAM,QAAQ,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC;YAC7C,OAAO,QAAQ,KAAK,SAAS,IAAI,CAAC,QAAQ,CAAC,aAAa,KAAK,aAAa;gBACtE,CAAC,QAAQ,CAAC,aAAa,KAAK,SAAS,IAAI,UAAU,CAAC,UAAU,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;QAClG,CAAC,CAAC,CAAC;QACH,IAAI,MAAM,CAAC,UAAU,CAAC,GAAG,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,qBAAqB,CAAC,IAAI,CAAC,EAAE,aAAa,KAAK,aAAa,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3H,MAAM,IAAI,KAAK,CAAC,8CAA8C,aAAa,CAAC,IAAI,IAAI,CAAC,CAAC;QAC1F,CAAC;QACD,IAAI,CAAC,UAAU,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;YACrC,MAAM,IAAI,KAAK,CAAC,kDAAkD,aAAa,CAAC,IAAI,IAAI,CAAC,CAAC;QAC9F,CAAC;QACD,MAAM,OAAO,GAA6B;YACtC,UAAU,EAAE,UAAU,CAAC,UAAU,EAAE,QAAQ,EAAE,UAAU,CAAC,QAAQ,EAAE,WAAW,EAAE,WAAW;YAC1F,UAAU,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,UAAU,IAAI,EAAE,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC;YAC3E,iBAAiB,EAAE,SAAS,EAAE,iBAAiB,IAAI,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE;YACjG,QAAQ,EAAE,EAAE,EAAE,mBAAmB,EAAE,EAAE;SACxC,CAAC;QACF,MAAM,QAAQ,GAAG,IAAI,4BAA4B,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC/H,MAAM,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,KAAK,cAAc,CAAC,aAAa,CAAC,CAAC,CAAC;QACtH,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CAAC,2CAA2C,aAAa,CAAC,IAAI,YAAY,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC;QACpH,CAAC;QACD,IAAI,CAAC,UAAU,GAAG,IAAI,4BAA4B,CAAC,aAAa,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;IAChG,CAAC;IAED,4CAA4C;IAC5C,IAAI,KAAK;QACL,OAAO,IAAI,6BAA6B,CAAC,IAAI,CAAC,CAAC;IACnD,CAAC;IAED,yEAAyE;IACzE,IAAI,QAAQ;QACR,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;YACjC,MAAM,YAAY,GAAG,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC;YACtF,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC1B,MAAM,IAAI,KAAK,CAAC,+EAA+E,CAAC,CAAC;YACrG,CAAC;YACD,OAAO,YAAY,CAAC,CAAC,CAAC,EAAE,QAAQ,IAAI,IAAI,CAAC;QAC7C,CAAC,CAAC,CAAC;IACP,CAAC;IAED,4FAA4F;IAC5F,KAAK,CAAC,wBAAwB,CAAC,EAAU;QACrC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,QAAQ,IAAI,IAAI,CAAC;IAC5D,CAAC;IAED,yEAAyE;IACzE,KAAK,CAAC,0BAA0B,CAAC,EAAU;QACvC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,OAAO,IAAI,KAAK,CAAC;IAC5D,CAAC;IAED;;;OAGG;IACH,OAAO,CAAC,MAAuC;QAC3C,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM;YAAE,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QACrE,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC;QACxB,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC;QAC1B,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,yFAAyF;IACzF,gBAAgB,CAAC,EAAU,EAAE,MAAyB;QAClD,IAAI,IAAI,CAAC,SAAS;YAAE,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QAC9C,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YACzB,MAAM,QAAQ,GAAG,oBAAoB,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;YACzD,IAAI,CAAC,QAAQ;gBAAE,MAAM,IAAI,KAAK,CAAC,UAAU,KAAK,CAAC,WAAW,CAAC,IAAI,+BAA+B,CAAC,CAAC;YAChG,8EAA8E;YAC9E,MAAM,OAAO,GAAY,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;YACrE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;gBACd,QAAQ,EAAE,EAAE;gBACZ,OAAO;gBACP,OAAO,EAAE;oBACL,aAAa,EAAE,EAAE;oBACjB,eAAe,EAAE,SAAS;oBAC1B,eAAe,EAAE,KAAK;oBACtB,aAAa,EAAE,SAAS;oBACxB,UAAU,EAAE,UAAU;oBACtB,SAAS,EAAE,UAAU;oBACrB,cAAc,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;oBAC3C,SAAS,EAAE,QAAQ,CAAC,SAAS;oBAC7B,QAAQ,EAAE,IAAI,IAAI,EAAE;oBACpB,aAAa,EAAE,sCAAsC;oBACrD,SAAS,EAAE,EAAE;oBACb,IAAI,EAAE,EAAE;iBACX;aACJ,CAAC,CAAC;QACP,CAAC;QACD,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC;IAC9B,CAAC;IAEO,OAAO;QACX,IAAI,IAAI,CAAC,SAAS;YAAE,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;QAC5E,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;QACjD,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;IAEO,MAAM,CAAC,MAAuB;QAClC,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;YACjD,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,YAAY,4BAA4B,CAAC,IAAI,KAAK,YAAY,8BAA8B;gBAAE,MAAM,KAAK,CAAC;YAC/H,MAAM,IAAI,KAAK,CAAC,qCAAqC,IAAI,CAAC,UAAU,aAAa,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;QACjK,CAAC,CAAC,CAAC;IACP,CAAC;IAEO,cAAc,CAAC,MAAuC;QAC1D,OAAO,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;YACrC,MAAM,EAAE,eAAe,GAAG,SAAS,EAAE,eAAe,GAAG,KAAK,EAAE,aAAa,GAAG,SAAS,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC;YAC1G,wGAAwG;YACxG,IAAI,eAAe,KAAK,SAAS,IAAI,eAAe,KAAK,KAAK,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;gBAC5F,MAAM,IAAI,8BAA8B,CAAC,IAAI,CAAC,UAAU,EAAE,SAAS,EAAE,GAAG,eAAe,IAAI,eAAe,IAAI,aAAa,EAAE,EACzH,+GAA+G,CAAC,CAAC;YACzH,CAAC;YACD,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,aAAa,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC;QACrG,CAAC,CAAC,CAAC;IACP,CAAC;IAEO,YAAY;QAChB,OAAO,IAAI,8BAA8B,CAAC,IAAI,CAAC,UAAU,EAAE,SAAS,EAAE,cAAc,EAChF,0FAA0F,CAAC,CAAC;IACpG,CAAC;CACJ"}
|
package/package.json
CHANGED
|
@@ -140,6 +140,8 @@ export class ReactorScenario {
|
|
|
140
140
|
get produced(): readonly unknown[] { return Object.freeze(this._effects.map(effect => effect.value)); }
|
|
141
141
|
get sideEffects(): readonly RecordedReactorSideEffect[] { return Object.freeze([...this._effects]); }
|
|
142
142
|
get results(): readonly ReactorDeliveryResult[] { return Object.freeze([...this._results]); }
|
|
143
|
+
/** Committed input and explicit service appends; recorded returned effects are not part of this history. */
|
|
144
|
+
get appendedEvents(): readonly AppendedEvent[] { return this._events.appendedEvents; }
|
|
143
145
|
/** Assertion view, deliberately not a callable Promise-like `then`. */
|
|
144
146
|
get then(): { readonly produced: readonly unknown[]; readonly sideEffects: readonly RecordedReactorSideEffect[];
|
|
145
147
|
readonly results: readonly ReactorDeliveryResult[] } {
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
// Copyright (c) Cratis. All rights reserved.
|
|
2
|
+
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
|
3
|
+
|
|
4
|
+
import { field } from '@cratis/fundamentals';
|
|
5
|
+
import { chai, describe, it } from 'vitest';
|
|
6
|
+
import { eventType } from '../events/eventTypeDecorator.js';
|
|
7
|
+
import { fromEvent } from '../projections/modelBound/fromEvent.js';
|
|
8
|
+
import { reactor } from '../reactors/reactor.js';
|
|
9
|
+
import type { ReactorServices } from '../reactors/ReactorServices.js';
|
|
10
|
+
import { reducer } from '../reducers/reducer.js';
|
|
11
|
+
import { EventScenario, ReactorScenario, ReadModelScenario, UnsupportedProjectionOperation } from './index.js';
|
|
12
|
+
|
|
13
|
+
chai.should();
|
|
14
|
+
|
|
15
|
+
@eventType('composition-member-joined')
|
|
16
|
+
class MemberJoined {
|
|
17
|
+
@field(String) name: string;
|
|
18
|
+
constructor(name: string) { this.name = name; }
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
@eventType('composition-member-welcomed')
|
|
22
|
+
class MemberWelcomed {
|
|
23
|
+
@field(String) name: string;
|
|
24
|
+
constructor(name: string) { this.name = name; }
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
@fromEvent(MemberJoined)
|
|
28
|
+
class Member {
|
|
29
|
+
@field(String) id = '';
|
|
30
|
+
@field(String) name = '';
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
class MemberCount { joined = 0; }
|
|
34
|
+
class MemberCountReducer {
|
|
35
|
+
memberJoined(_event: MemberJoined, current: MemberCount | undefined): MemberCount {
|
|
36
|
+
return { joined: (current?.joined ?? 0) + 1 };
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
reducer('composition-member-count', undefined, MemberCount)(MemberCountReducer);
|
|
40
|
+
|
|
41
|
+
@fromEvent(MemberWelcomed)
|
|
42
|
+
class Welcome {
|
|
43
|
+
@field(String) id = '';
|
|
44
|
+
@field(String) name = '';
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
@reactor('composition-welcomer')
|
|
48
|
+
class Welcomer {
|
|
49
|
+
async memberJoined(event: MemberJoined, context: { eventSourceId: string }, services: ReactorServices) {
|
|
50
|
+
await services.eventStore.eventLog.append(context.eventSourceId, new MemberWelcomed(event.name));
|
|
51
|
+
return new MemberWelcomed(`returned ${event.name}`);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
const eventTypes = [MemberJoined, MemberWelcomed];
|
|
56
|
+
const catalog = { eventTypes, reducers: [MemberCountReducer], projections: [] };
|
|
57
|
+
|
|
58
|
+
describe('ReadModelScenario observing an EventScenario', () => {
|
|
59
|
+
it('projects the committed history at the time of each read', async () => {
|
|
60
|
+
const events = new EventScenario({ artifacts: { eventTypes }, constraints: 'disabled' });
|
|
61
|
+
const members = new ReadModelScenario(Member, catalog).observe(events);
|
|
62
|
+
await events.append('member-1', new MemberJoined('Ada'));
|
|
63
|
+
(await members.instanceForEventSourceId('member-1'))!.name.should.equal('Ada');
|
|
64
|
+
await events.appendMany('member-2', [new MemberJoined('Grace')]);
|
|
65
|
+
(await members.instanceForEventSourceId('member-2'))!.name.should.equal('Grace');
|
|
66
|
+
});
|
|
67
|
+
|
|
68
|
+
it('folds setup and action events through a reducer', async () => {
|
|
69
|
+
const events = new EventScenario({ artifacts: { eventTypes }, constraints: 'disabled' });
|
|
70
|
+
const counts = new ReadModelScenario(MemberCount, catalog).observe(events);
|
|
71
|
+
await events.given.forEventSource('club').events(new MemberJoined('Ada'));
|
|
72
|
+
await events.when.forEventSource('club').events(new MemberJoined('Grace'));
|
|
73
|
+
(await counts.instance)!.joined.should.equal(2);
|
|
74
|
+
});
|
|
75
|
+
|
|
76
|
+
it('rejects an explicitly routed event instead of guessing its projection semantics', async () => {
|
|
77
|
+
const events = new EventScenario({ artifacts: { eventTypes }, constraints: 'disabled' });
|
|
78
|
+
const members = new ReadModelScenario(Member, catalog).observe(events);
|
|
79
|
+
await events.appendMany([{ eventSourceId: 'member-1', event: new MemberJoined('Ada'), eventSourceType: 'Members' }]);
|
|
80
|
+
const error = await members.instanceForEventSourceId('member-1').then(() => undefined, (reason: unknown) => reason);
|
|
81
|
+
error.should.be.instanceOf(UnsupportedProjectionOperation);
|
|
82
|
+
(error as Error).message.should.contain('routed events');
|
|
83
|
+
});
|
|
84
|
+
|
|
85
|
+
it('rejects seeding events into an observing scenario', () => {
|
|
86
|
+
const members = new ReadModelScenario(Member, catalog).observe(new EventScenario({ artifacts: { eventTypes }, constraints: 'disabled' }));
|
|
87
|
+
(() => members.given.forEventSource('member-1').events(new MemberJoined('Ada'))).should.throw(UnsupportedProjectionOperation, 'not both');
|
|
88
|
+
});
|
|
89
|
+
|
|
90
|
+
it('rejects observing after seeding or observing twice', () => {
|
|
91
|
+
const events = new EventScenario({ artifacts: { eventTypes }, constraints: 'disabled' });
|
|
92
|
+
const seeded = new ReadModelScenario(Member, catalog);
|
|
93
|
+
seeded.given.forEventSource('member-1').events(new MemberJoined('Ada'));
|
|
94
|
+
(() => seeded.observe(events)).should.throw(UnsupportedProjectionOperation, 'not both');
|
|
95
|
+
const observing = new ReadModelScenario(Member, catalog).observe(events);
|
|
96
|
+
(() => observing.observe(events)).should.throw(UnsupportedProjectionOperation, 'not both');
|
|
97
|
+
});
|
|
98
|
+
});
|
|
99
|
+
|
|
100
|
+
describe('ReadModelScenario observing a ReactorScenario', () => {
|
|
101
|
+
it('reads input events and the reactor\'s explicit appends, but not its recorded returned effects', async () => {
|
|
102
|
+
const reactorScenario = new ReactorScenario(Welcomer, { artifacts: { eventTypes }, constraints: 'disabled' });
|
|
103
|
+
const welcomes = new ReadModelScenario(Welcome, catalog).observe(reactorScenario);
|
|
104
|
+
const members = new ReadModelScenario(Member, catalog).observe(reactorScenario);
|
|
105
|
+
await reactorScenario.when.forEventSource('member-1').events(new MemberJoined('Ada'));
|
|
106
|
+
(await members.instanceForEventSourceId('member-1'))!.name.should.equal('Ada');
|
|
107
|
+
(await welcomes.instanceForEventSourceId('member-1'))!.name.should.equal('Ada');
|
|
108
|
+
reactorScenario.appendedEvents.length.should.equal(2);
|
|
109
|
+
reactorScenario.shouldHaveProduced(MemberWelcomed, welcome => welcome.name === 'returned Ada');
|
|
110
|
+
});
|
|
111
|
+
});
|
|
@@ -23,6 +23,8 @@ import type { IReadModelProcessor } from './IReadModelProcessor.js';
|
|
|
23
23
|
import type { ReadModelState } from './ReadModelState.js';
|
|
24
24
|
import { ReducerReadModelProcessor } from './ReducerReadModelProcessor.js';
|
|
25
25
|
import type { ScenarioEvent } from './ScenarioEvent.js';
|
|
26
|
+
import type { EventScenario } from './EventScenario.js';
|
|
27
|
+
import type { ReactorScenario } from './ReactorScenario.js';
|
|
26
28
|
import { ProjectionReadModelProcessor } from './projections/ProjectionReadModelProcessor.js';
|
|
27
29
|
import { UnsupportedProjectionOperation } from './projections/UnsupportedProjectionOperation.js';
|
|
28
30
|
|
|
@@ -39,6 +41,7 @@ export class ReadModelScenario<TReadModel extends object> {
|
|
|
39
41
|
private readonly _modelName: string;
|
|
40
42
|
private readonly _events: ScenarioEvent[] = [];
|
|
41
43
|
private _results: Promise<Map<string, ReadModelState<TReadModel>>> | undefined;
|
|
44
|
+
private _observed: EventScenario | ReactorScenario | undefined;
|
|
42
45
|
|
|
43
46
|
/** Selects the reducer (when present) or a single applicable compiled projection. */
|
|
44
47
|
constructor(readModelType: Constructor<TReadModel>, artifacts?: ScenarioArtifacts) {
|
|
@@ -109,8 +112,20 @@ export class ReadModelScenario<TReadModel extends object> {
|
|
|
109
112
|
return (await this.process()).get(id)?.deleted ?? false;
|
|
110
113
|
}
|
|
111
114
|
|
|
115
|
+
/**
|
|
116
|
+
* Reads the committed history of an EventScenario or ReactorScenario instead of seeded events.
|
|
117
|
+
* Every read replays that shared sequence as it is at the time of the read.
|
|
118
|
+
*/
|
|
119
|
+
observe(source: EventScenario | ReactorScenario): this {
|
|
120
|
+
if (this._observed || this._events.length) throw this.mixedHistory();
|
|
121
|
+
this._observed = source;
|
|
122
|
+
this._results = undefined;
|
|
123
|
+
return this;
|
|
124
|
+
}
|
|
125
|
+
|
|
112
126
|
/** Collects events for a source; subsequent reads replay the complete seeded history. */
|
|
113
127
|
collectEventsFor(id: string, events: readonly object[]): void {
|
|
128
|
+
if (this._observed) throw this.mixedHistory();
|
|
114
129
|
for (const event of events) {
|
|
115
130
|
const metadata = getEventTypeMetadata(event.constructor);
|
|
116
131
|
if (!metadata) throw new Error(`Event '${event.constructor.name}' has no @eventType metadata.`);
|
|
@@ -139,13 +154,32 @@ export class ReadModelScenario<TReadModel extends object> {
|
|
|
139
154
|
}
|
|
140
155
|
|
|
141
156
|
private process(): Promise<Map<string, ReadModelState<TReadModel>>> {
|
|
142
|
-
if (
|
|
143
|
-
|
|
144
|
-
this._results = this._processor.process(events).catch(error => {
|
|
145
|
-
if (!(this._processor instanceof ProjectionReadModelProcessor) || error instanceof UnsupportedProjectionOperation) throw error;
|
|
146
|
-
throw new Error(`Projection replay for read model '${this._modelName}' failed: ${error instanceof Error ? error.message : String(error)}`, { cause: error });
|
|
147
|
-
});
|
|
148
|
-
}
|
|
157
|
+
if (this._observed) return this.replay(this.observedEvents(this._observed));
|
|
158
|
+
this._results ??= this.replay([...this._events]);
|
|
149
159
|
return this._results;
|
|
150
160
|
}
|
|
161
|
+
|
|
162
|
+
private replay(events: ScenarioEvent[]): Promise<Map<string, ReadModelState<TReadModel>>> {
|
|
163
|
+
return this._processor.process(events).catch(error => {
|
|
164
|
+
if (!(this._processor instanceof ProjectionReadModelProcessor) || error instanceof UnsupportedProjectionOperation) throw error;
|
|
165
|
+
throw new Error(`Projection replay for read model '${this._modelName}' failed: ${error instanceof Error ? error.message : String(error)}`, { cause: error });
|
|
166
|
+
});
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
private observedEvents(source: EventScenario | ReactorScenario): ScenarioEvent[] {
|
|
170
|
+
return source.appendedEvents.map(event => {
|
|
171
|
+
const { eventSourceType = 'Default', eventStreamType = 'All', eventStreamId = 'Default' } = event.context;
|
|
172
|
+
// No fixture establishes how the evaluator should treat an explicitly routed event; the kernel decides.
|
|
173
|
+
if (eventSourceType !== 'Default' || eventStreamType !== 'All' || eventStreamId !== 'Default') {
|
|
174
|
+
throw new UnsupportedProjectionOperation(this._modelName, 'observe', `${eventSourceType}/${eventStreamType}/${eventStreamId}`,
|
|
175
|
+
'observed events must use the default event source type and stream; routed events require a kernel-backed test');
|
|
176
|
+
}
|
|
177
|
+
return { sourceId: event.context.eventSourceId, content: event.content, context: event.context };
|
|
178
|
+
});
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
private mixedHistory(): UnsupportedProjectionOperation {
|
|
182
|
+
return new UnsupportedProjectionOperation(this._modelName, 'observe', 'given.events',
|
|
183
|
+
'a scenario replays either its own seeded events or one observed event sequence, not both');
|
|
184
|
+
}
|
|
151
185
|
}
|