Adding test around live/read events

This commit is contained in:
2017-03-11 14:31:24 -08:00
parent 158ca2d0a7
commit 9e29e60cfa
5 changed files with 371 additions and 90 deletions

View File

@ -71,6 +71,32 @@ function eventEqualEventData(name, resolvedEvent, eventData) {
this.ok(Buffer.compare(ev.metadata, eventData.metadata) === 0, name + ".originalEvent.metadata is not equal to original metadata.");
}
function testLiveEvent(name, event, evNumber) {
this.ok(event.event, name + ".event not defined (or null)");
this.ok(event.originalEvent, name + ".originalEvent not defined (or null)");
this.ok(event.isResolved === false, name + ".isResolved should be true");
this.ok(event.originalPosition instanceof client.Position, name + ".originalPosition is not an instance of Position");
this.ok(event.originalStreamId, name + ".originalStreamId not defined (or null)");
if (typeof evNumber === 'number') {
this.ok(event.originalEventNumber === evNumber, name + '.originalEventNumber expected ' + evNumber + ' got ' + event.originalEventNumber);
} else {
this.ok(typeof event.originalEventNumber === 'number', name + ".originalEventNumber is not a number");
}
}
function testReadEvent(name, event, evNumber) {
this.ok(event.event, name + ".event not defined (or null)");
this.ok(event.originalEvent, name + ".originalEvent not defined (or null)");
this.ok(event.isResolved === false, name + ".isResolved should be true");
this.ok(event.originalPosition === null, name + ".originalPosition is not null");
this.ok(event.originalStreamId, name + ".originalStreamId not defined (or null)");
if (typeof evNumber === 'number') {
this.ok(event.originalEventNumber === evNumber, name + '.originalEventNumber expected ' + evNumber + ' got ' + event.originalEventNumber);
} else {
this.ok(typeof event.originalEventNumber === 'number', name + ".originalEventNumber is not a number");
}
}
var _ = {
'setUp': setUp,
'tearDown': tearDown
@ -84,6 +110,8 @@ function wrap(name, testFunc) {
test.areEqual = areEqual.bind(test);
test.fail = fail.bind(test);
test.eventEqualEventData = eventEqualEventData.bind(test);
test.testLiveEvent = testLiveEvent.bind(test);
test.testReadEvent = testReadEvent.bind(test);
return testFunc.call(this, test);
}
}

View File

@ -16,7 +16,7 @@ module.exports = {
.catch(cb);
},
'Read Stream Events Forward Happy Path': function(test) {
test.expect(7 + (streamSize * 6));
test.expect(7 + (streamSize * 11));
var self = this;
this.conn.readStreamEventsForward(this.testStreamName, 0, streamSize)
.then(function(slice) {
@ -29,7 +29,7 @@ module.exports = {
test.areEqual('slice.isEndOfStream', slice.isEndOfStream, true);
for(var i = 0; i < streamSize; i++) {
test.eventEqualEventData('slice.events[' + i + ']', slice.events[i], self.eventsData[i]);
test.areEqual('slice.events[' + i + '].originalEventNumber', slice.events[i].originalEventNumber, i);
test.testReadEvent('slice.events[' + i + ']', slice.events[i], i);
}
test.done();
})

View File

@ -8,7 +8,7 @@ function createRandomEvent() {
module.exports = {
'Test Subscribe to Stream From Happy Path': function(test) {
test.expect(8);
test.expect(20);
var self = this;
var liveProcessing = false;
var catchUpEvents = [];
@ -40,7 +40,9 @@ module.exports = {
}
function subscriptionDropped(connection, reason, error) {
test.ok(liveEvents.length === 1, "Expecting 1 live event, got " + liveEvents.length);
test.ok(catchUpEvents.length >= 1, "Expecting at least 1 catchUp event, got " + catchUpEvents.length);
test.testLiveEvent('liveEvents[0]', liveEvents[0]);
test.ok(catchUpEvents.length === 1, "Expecting 1 catchUp event, got " + catchUpEvents.length);
test.testReadEvent('catchUpEvents[0]', catchUpEvents[0]);
done(error);
}