event-store-projection-testing-framework
Version:
Test framework for Event Store projections
62 lines (51 loc) • 1.51 kB
JavaScript
;
function util() {
var self = this;
self.commandHandlers = {};
var $on = function (name, commandHandler) {
self.commandHandlers[name] = commandHandler;
};
self.emittedEvents = [];
var $notify = function (action, event) {
if (action === 'emit')
self.emittedEvents.push(JSON.parse(event));
};
self.scope = require('../prelude/1Prelude')($on, $notify);
self.getState = function () {
return JSON.parse(self.commandHandlers.debugging_get_state());
};
self.setState = function (state) {
self.commandHandlers.set_state(JSON.stringify(state));
};
self.processEvent = function (streamId, eventType, event, metadata, eventId) {
//function(event,
//isJson,
// streamId,
// eventType,
// category,
// sequenceNumber,
// metadata,
// linkMetadata,
// partition,
// eventId)
self.state = self.commandHandlers.process_event(event,
true,
streamId,
eventType,
undefined,
undefined,
JSON.stringify(metadata),
null,
null,
eventId);
};
self.getTransform = function () {
var transform = self.commandHandlers.transform_state_to_result();
return transform && JSON.parse(transform);
};
this.initialize = function () {
self.emittedEvents = [];
self.commandHandlers.initialize();
};
}
module.exports = new util();