1
0
mirror of https://github.com/Unleash/unleash.git synced 2025-04-10 01:16:39 +02:00

#18 eventRepository can now emit events

There is an example in eventRepositorySpec on how to listen on events.
This commit is contained in:
svelovla 2014-10-22 15:35:22 +02:00 committed by Ivar Conradi Østhus
parent 79098e3a5f
commit 6047f9494e
4 changed files with 46 additions and 2 deletions

View File

@ -1,9 +1,12 @@
var db = require('./db');
var EventRepository = require('./eventRepository');
var eventDb = new EventRepository();
module.exports = function (app) {
app.get('/features', function (req, res) {
// TODO svelovla, fix this
eventDb.create({name: 'testing method'});
db.getFeatures().then(function (features) {
res.json({features: features});
});
@ -37,7 +40,6 @@ module.exports = function (app) {
var body = req.body;
body.data.name = req.params.id;
var event = {};
event.type = 'feature-update';
event.user = req.connection.remoteAddress;
event.comment = body.comment;
event.data = body.data;

View File

@ -0,0 +1,17 @@
var util = require('util');
var EventEmitter = require('events').EventEmitter;
var events = require('./events');
function EventRepository() {
EventEmitter.call(this);
}
util.inherits(EventRepository, EventEmitter);
EventRepository.prototype.create = function (obj) {
this.emit(events.featureCreated, obj);
};
module.exports = EventRepository;

View File

@ -0,0 +1,3 @@
module.exports = {
featureCreated : 'featureCreated'
};

View File

@ -0,0 +1,22 @@
var assert = require('assert');
var events = require('../lib/events');
var EventRepository = require('../lib/eventRepository');
var eventRepository = new EventRepository();
describe('EventRepository', function () {
describe('#create()', function () {
it('should emit event', function (done) {
eventRepository.on(events.featureCreated, function (x) {
assert(x);
done();
}
);
eventRepository.create({
'name': 'mail-server.validate-email-addresses',
'enabled': false,
'strategy': 'default',
'description': 'Feature description'
});
});
});
});