cqrs-eventdenormalizer
Advanced tools
Comparing version 0.2.5 to 0.2.6
@@ -132,2 +132,4 @@ var _ = require('lodash') | ||
var self = this; | ||
// Map events to function names: | ||
@@ -158,6 +160,12 @@ // - For the event handler matching the current event, its name is returned | ||
this[fnName](evt, this._getAux(), function(err) { | ||
if (err && err.name === 'ConcurrencyError') { | ||
return self.handle(evt); | ||
} | ||
if (err) { | ||
throw err; | ||
} | ||
eventEmitter.emit('denormalized:' + evt.event, evt); | ||
}); | ||
} else { | ||
throw(new Error('missing handle function')); | ||
throw new Error('missing handle function'); | ||
} | ||
@@ -164,0 +172,0 @@ |
{ | ||
"author": "adrai", | ||
"name": "cqrs-eventdenormalizer", | ||
"version": "0.2.5", | ||
"version": "0.2.6", | ||
"private": false, | ||
@@ -18,3 +18,3 @@ "main": "index.js", | ||
"node-queue": ">= 0.4.0", | ||
"viewmodel": ">= 0.5.0" | ||
"viewmodel": ">= 0.5.1" | ||
}, | ||
@@ -21,0 +21,0 @@ "devDependencies": { |
@@ -54,2 +54,6 @@ # Introduction | ||
## v0.2.6 | ||
- use new concurrency feature of viewmodel | ||
## v0.2.4 | ||
@@ -56,0 +60,0 @@ |
@@ -303,2 +303,39 @@ var expect = require('expect.js') | ||
describe('but having a viewmodel beeing updated by someone else in the meantime', function() { | ||
var denorm, | ||
orgFunc; | ||
beforeEach(function (done) { | ||
denorm = require('./eventDenormalizers/dummyDenormalizer'); | ||
orgFunc = denorm._getAux().defaultRevisionUpdateStrategy; | ||
denorm._getAux().defaultRevisionUpdateStrategy = function(vm, evt) { | ||
vm.commit(function() {}); | ||
denorm._getAux().defaultRevisionUpdateStrategy = orgFunc; | ||
}; | ||
dummyRepo.get(evt.payload.id, function(err, vm) { | ||
vm._revision = 2; | ||
dummyRepo.commit(vm, done); | ||
}); | ||
}); | ||
it('it should retry to rehandle the event', function(done) { | ||
eventEmitter.once('denormalized:' + evt.event, function(data) { | ||
dummyRepo.get(data.payload.id, function(err, vm) { | ||
expect(vm).to.have.property('id', evt.payload.id); | ||
done(); | ||
}); | ||
}); | ||
contextEventDenormalizer.denormalize(evt, function(err) {}); | ||
}); | ||
}); | ||
}); | ||
@@ -321,3 +358,3 @@ | ||
} | ||
}; | ||
}; | ||
@@ -402,4 +439,4 @@ dummyRepo.get('9876', function(err, vm) { | ||
var firstEvt | ||
, secondEvt; | ||
var firstEvt, | ||
secondEvt; | ||
@@ -435,4 +472,5 @@ beforeEach(function() { | ||
var handlersRun = [] | ||
, todo = 2; | ||
var handlersRun = [], | ||
todo = 2; | ||
function check() { | ||
@@ -439,0 +477,0 @@ todo--; |
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
85026
1753
83
Updatedviewmodel@>= 0.5.1