linagora-rse
Version:
102 lines (84 loc) • 2.67 kB
JavaScript
;
var expect = require('chai').expect;
var mongoose = require('mongoose');
describe('The notification middleware', function() {
describe('userCanReadNotification fn', function() {
it('should send back 400 if user is not defined in request', function(done) {
var req = {
notification: {}
};
var res = this.helpers.express.jsonResponse(
function(code) {
expect(code).to.equal(400);
done();
}
);
var middleware = this.helpers.requireBackend('webserver/middleware/notification').userCanReadNotification;
middleware(req, res, function() {});
});
it('should send back 400 if notification is not defined in request', function(done) {
var req = {
user: {}
};
var res = this.helpers.express.jsonResponse(
function(code) {
expect(code).to.equal(400);
done();
}
);
var middleware = this.helpers.requireBackend('webserver/middleware/notification').userCanReadNotification;
middleware(req, res, function() {});
});
it('should call next if notification author is the same as current user', function(done) {
var id = mongoose.Types.ObjectId();
var req = {
user: {
_id: id
},
notification: {
author: id
}
};
var res = {
};
var middleware = this.helpers.requireBackend('webserver/middleware/notification').userCanReadNotification;
middleware(req, res, done);
});
it('should send back 403 if current user is not in target', function(done) {
var id = mongoose.Types.ObjectId();
var req = {
user: {
_id: id
},
notification: {
author: mongoose.Types.ObjectId(),
target: []
}
};
var res = this.helpers.express.jsonResponse(
function(code) {
expect(code).to.equal(403);
done();
}
);
var middleware = this.helpers.requireBackend('webserver/middleware/notification').userCanReadNotification;
middleware(req, res, function() {});
});
it('should call next if current user is in target', function(done) {
var id = mongoose.Types.ObjectId();
var req = {
user: {
_id: id
},
notification: {
author: mongoose.Types.ObjectId(),
target: [{objectType: 'user', id: id}]
}
};
var res = {
};
var middleware = this.helpers.requireBackend('webserver/middleware/notification').userCanReadNotification;
middleware(req, res, done);
});
});
});