Documentation / zerotal / index / EventFake
Class: EventFake
Defined in: packages/core/src/events/EventFake.ts:37
Drop-in replacement for Emitter that captures emitted events instead of dispatching them to listeners. Install at the start of a test, restore after.
Faking the emitter is what lets a test assert "publishing a post announces
PostPublished" without the listeners for that event — mail, search
indexing, cache invalidation — running as a side effect. To test a listener,
do not fake: construct the listener and hand it an event directly.
Example
const events = EventFake.install();
await post.publish();
events.assertEmitted(PostPublished);
events.assertEmitted(PostPublished, (e) => e.postId === post.id);
events.assertNotEmitted(PostDeleted);
events.restore(); // call in afterEach
Extends
Dispatch
dispatchQueuedListener()
dispatchQueuedListener(
listenerName,eventPayload):Promise<void>
Defined in: packages/core/src/events/Emitter.ts:251
Run a deferred listener by name with its raw payload. Called by the queue worker, not application code.
Parameters
listenerName
string
The registered listener class name.
eventPayload
any
The raw payload handed straight to handle() (for most
listeners the payload is the event).
Returns
Promise<void>
Throws
If no listener is registered under listenerName.
Inherited from
Emitter.dispatchQueuedListener
Other
install()
staticinstall():EventFake
Defined in: packages/core/src/events/EventFake.ts:48
Replace the events container binding with this fake.
Returns
EventFake
restore()
restore():
void
Defined in: packages/core/src/events/EventFake.ts:56
Restore the original events binding. Call in afterEach.
Returns
void
emit()
emit<
T>(event):Promise<void>
Defined in: packages/core/src/events/EventFake.ts:67
Capture the event — its listeners do NOT run.
Type Parameters
T
T extends object
Parameters
event
T
Returns
Promise<void>
Overrides
emitSync()
emitSync<
T>(event):Promise<void>
Defined in: packages/core/src/events/EventFake.ts:72
Capture the event — its listeners do NOT run.
Type Parameters
T
T extends object
Parameters
event
T
Returns
Promise<void>
Overrides
clear()
clear():
void
Defined in: packages/core/src/events/EventFake.ts:77
Discard the captured events, and any listeners registered on the fake.
Returns
void
Overrides
emitted()
emitted():
object[]
Defined in: packages/core/src/events/EventFake.ts:85
Every event captured, in emit order.
Returns
object[]
emittedOf()
emittedOf<
T>(EventType):T[]
Defined in: packages/core/src/events/EventFake.ts:90
The captured events of the given class, narrowed to its type.
Type Parameters
T
T extends object
Parameters
EventType
EventClass<T>
Returns
T[]
assertEmitted()
assertEmitted<
T>(EventType,filter?):void
Defined in: packages/core/src/events/EventFake.ts:104
Assert an event of the given class was emitted, optionally one matching
filter.
Type Parameters
T
T extends object
Parameters
EventType
EventClass<T>
filter?
(event) => boolean
Returns
void
Example
events.assertEmitted(OrderPlaced);
events.assertEmitted(OrderPlaced, (e) => e.total === 4999);
assertNotEmitted()
assertNotEmitted<
T>(EventType,filter?):void
Defined in: packages/core/src/events/EventFake.ts:120
Assert no event of the given class was emitted.
Type Parameters
T
T extends object
Parameters
EventType
EventClass<T>
filter?
(event) => boolean
Returns
void
assertEmittedCount()
assertEmittedCount<
T>(EventType,count):void
Defined in: packages/core/src/events/EventFake.ts:135
Assert exactly count events of the given class were emitted.
Type Parameters
T
T extends object
Parameters
EventType
EventClass<T>
count
number
Returns
void
assertNothingEmitted()
assertNothingEmitted():
void
Defined in: packages/core/src/events/EventFake.ts:145
Assert no events at all were emitted.
Returns
void
Subscription
on()
on<
T>(eventClass,listenerClass):void
Defined in: packages/core/src/events/Emitter.ts:107
Register a listener class to run whenever the given event class is emitted. The same event may have many listeners; they run in registration order.
Type Parameters
T
T extends object
Parameters
eventClass
EventClass<T>
The event class to listen for.
listenerClass
ListenerClass<T>
A class with a handle(event) method.
Returns
void
Inherited from
off()
off<
T>(eventClass,listenerClass):void
Defined in: packages/core/src/events/Emitter.ts:134
Remove a previously registered listener for the given event class. No-op if the listener was never registered.
Type Parameters
T
T extends object
Parameters
eventClass
EventClass<T>
listenerClass
ListenerClass<T>
Returns
void
Inherited from
hasListeners()
hasListeners<
T>(eventClass):boolean
Defined in: packages/core/src/events/Emitter.ts:268
Whether any listener is registered for the given event class.
Type Parameters
T
T extends object
Parameters
eventClass
EventClass<T>
Returns
boolean