linagora-rse
Version:
98 lines (83 loc) • 2.99 kB
JavaScript
;
var expect = require('chai').expect;
var mongoose = require('mongoose');
describe('The usernotification middleware', function() {
describe('userCanReadNotification method', function() {
it('should send back 403 if current user is not the target', function(done) {
var id = mongoose.Types.ObjectId();
var req = {
user: {
_id: id
},
usernotification: {
author: mongoose.Types.ObjectId(),
target: null
}
};
var res = this.helpers.express.jsonResponse(
function(code, message) {
expect(code).to.equal(403);
expect(message.error).to.exists;
expect(message.error.status).to.equal(403);
expect(message.error.details).to.exists;
done();
}
);
var middleware = this.helpers.requireBackend('webserver/middleware/usernotifications').userCanReadNotification;
middleware(req, res, function() {});
});
it('should call next if current user is target', function(done) {
var id = mongoose.Types.ObjectId();
var req = {
user: {
_id: id
},
usernotification: {
author: mongoose.Types.ObjectId(),
target: id
}
};
var res = {
};
var middleware = this.helpers.requireBackend('webserver/middleware/usernotifications').userCanReadNotification;
middleware(req, res, done);
});
});
describe('userCanReadAllNotifications method', function() {
it('should send back 403 if current user is not in one usernotification target', function(done) {
var id = mongoose.Types.ObjectId();
var req = {
user: { _id: id },
usernotifications: [
{ author: mongoose.Types.ObjectId(), target: mongoose.Types.ObjectId() },
{ author: mongoose.Types.ObjectId(), target: id }
]
};
var res = this.helpers.express.jsonResponse(
function(code, message) {
expect(code).to.equal(403);
expect(message.error).to.exists;
expect(message.error.status).to.equal(403);
expect(message.error.details).to.exists;
done();
}
);
var middleware = this.helpers.requireBackend('webserver/middleware/usernotifications').userCanReadAllNotifications;
middleware(req, res, function() {});
});
it('should call next if current user is in all target', function(done) {
var id = mongoose.Types.ObjectId();
var req = {
user: { _id: id },
usernotifications: [
{ author: mongoose.Types.ObjectId(), target: id },
{ author: mongoose.Types.ObjectId(), target: id },
{ author: mongoose.Types.ObjectId(), target: id }
]
};
var res = {};
var middleware = this.helpers.requireBackend('webserver/middleware/usernotifications').userCanReadAllNotifications;
middleware(req, res, done);
});
});
});