linagora-rse
Version:
201 lines (184 loc) • 5.33 kB
JavaScript
;
var expect = require('chai').expect;
var mockery = require('mockery');
describe('The activitystream middleware', function() {
describe.skip('The filterWritableTargets fn', function() {
});
describe.skip('The findStreamResource fn', function() {
});
describe('The isValidStream fn', function() {
it('should send back 400 if req.query.objectType is not set', function(done) {
this.helpers.mock.models({
Community: {
getFromActivityStreamID: function(uuid, cb) {
return cb(null, null);
}
}
});
mockery.registerMock('../../core/activitystreams', {});
var middleware = this.helpers.requireBackend('webserver/middleware/activitystream').isValidStream;
var req = {
query: {
id: 1
}
};
var res = this.helpers.express.jsonResponse(
function(code) {
expect(code).to.equal(400);
done();
}
);
var next = function() {};
middleware(req, res, next);
});
it('should send back 400 if req.query.id is not set', function(done) {
this.helpers.mock.models({
Community: {
getFromActivityStreamID: function(uuid, cb) {
return cb(null, null);
}
}
});
mockery.registerMock('../../core/activitystreams', {});
var middleware = this.helpers.requireBackend('webserver/middleware/activitystream').isValidStream;
var req = {
query: {
objectType: 1
}
};
var res = this.helpers.express.jsonResponse(
function(code) {
expect(code).to.equal(400);
done();
}
);
var next = function() {};
middleware(req, res, next);
});
it('should send back 500 if as#getUserStreams fails', function(done) {
this.helpers.mock.models({
Community: {
getFromActivityStreamID: function(uuid, cb) {
return cb(null, null);
}
}
});
mockery.registerMock('../../core/activitystreams', {
getUserStreams: function(user, options, callback) {
return callback(new Error());
}
});
var middleware = this.helpers.requireBackend('webserver/middleware/activitystream').isValidStream;
var req = {
query: {
objectType: 1,
id: 2
}
};
var res = this.helpers.express.jsonResponse(
function(code) {
expect(code).to.equal(500);
done();
}
);
var next = function() {};
middleware(req, res, next);
});
it('should send back 400 if as#getUserStreams does not send back any stream', function(done) {
this.helpers.mock.models({
Community: {
getFromActivityStreamID: function(uuid, cb) {
return cb(null, null);
}
}
});
mockery.registerMock('../../core/activitystreams', {
getUserStreams: function(user, options, callback) {
return callback();
}
});
var middleware = this.helpers.requireBackend('webserver/middleware/activitystream').isValidStream;
var req = {
query: {
objectType: 1,
id: 2
}
};
var res = this.helpers.express.jsonResponse(
function(code) {
expect(code).to.equal(400);
done();
}
);
var next = function() {};
middleware(req, res, next);
});
it('should call next if stream is found', function(done) {
var id = 123;
var streams = [
{uuid: 983983},
{uuid: id}
];
this.helpers.mock.models({
Community: {
getFromActivityStreamID: function(uuid, cb) {
return cb(null, null);
}
}
});
mockery.registerMock('../../core/activitystreams', {
getUserStreams: function(user, options, callback) {
return callback(null, streams);
}
});
var middleware = this.helpers.requireBackend('webserver/middleware/activitystream').isValidStream;
var req = {
query: {
objectType: 1,
id: id
}
};
var res = {
json: function() {
done(new Error());
}
};
middleware(req, res, done);
});
it('should send back 400 if stream is not found', function(done) {
var id = 123;
var streams = [
{uuid: 983983},
{uuid: 345}
];
this.helpers.mock.models({
Community: {
getFromActivityStreamID: function(uuid, cb) {
return cb(null, null);
}
}
});
mockery.registerMock('../../core/activitystreams', {
getUserStreams: function(user, options, callback) {
return callback(null, streams);
}
});
var middleware = this.helpers.requireBackend('webserver/middleware/activitystream').isValidStream;
var req = {
query: {
objectType: 1,
id: id
}
};
var res = this.helpers.express.jsonResponse(
function(code) {
expect(code).to.equal(400);
done();
}
);
middleware(req, res, function() {
return done(new Error());
});
});
});
});