mirror of
https://github.com/overleaf/overleaf.git
synced 2024-09-16 02:52:31 -04:00
98 lines
No EOL
2.8 KiB
JavaScript
98 lines
No EOL
2.8 KiB
JavaScript
/* eslint-disable
|
|
camelcase,
|
|
handle-callback-err,
|
|
no-undef,
|
|
no-unused-vars,
|
|
*/
|
|
// TODO: This file was created by bulk-decaffeinate.
|
|
// Fix any style issues and re-enable lint.
|
|
/*
|
|
* decaffeinate suggestions:
|
|
* DS102: Remove unnecessary code created because of implicit returns
|
|
* Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md
|
|
*/
|
|
const sinon = require("sinon");
|
|
const chai = require("chai");
|
|
chai.should();
|
|
const {
|
|
expect
|
|
} = chai;
|
|
const {
|
|
ObjectId
|
|
} = require("mongojs");
|
|
const request = require("request");
|
|
const async = require("async");
|
|
const ContactsApp = require("./ContactsApp");
|
|
const HOST = "http://localhost:3036";
|
|
|
|
describe("Getting Contacts", function() {
|
|
describe("with no contacts", function() {
|
|
beforeEach(function(done){
|
|
this.user_id = ObjectId().toString();
|
|
return ContactsApp.ensureRunning(done);
|
|
});
|
|
|
|
return it("should return an empty array", function(done) {
|
|
return request({
|
|
method: "GET",
|
|
url: `${HOST}/user/${this.user_id}/contacts`,
|
|
json: true
|
|
}, (error, response, body) => {
|
|
response.statusCode.should.equal(200);
|
|
body.contact_ids.should.deep.equal([]);
|
|
return done();
|
|
});
|
|
});
|
|
});
|
|
|
|
return describe("with contacts", function() {
|
|
beforeEach(function(done) {
|
|
this.user_id = ObjectId().toString();
|
|
this.contact_id_1 = ObjectId().toString();
|
|
this.contact_id_2 = ObjectId().toString();
|
|
this.contact_id_3 = ObjectId().toString();
|
|
|
|
const touchContact = (user_id, contact_id, cb) => request({
|
|
method: "POST",
|
|
url: `${HOST}/user/${user_id}/contacts`,
|
|
json: {
|
|
contact_id
|
|
}
|
|
}, cb);
|
|
|
|
return async.series([
|
|
// 2 is preferred since touched twice, then 3 since most recent, then 1
|
|
cb => ContactsApp.ensureRunning(cb),
|
|
cb => touchContact(this.user_id, this.contact_id_1, cb),
|
|
cb => touchContact(this.user_id, this.contact_id_2, cb),
|
|
cb => touchContact(this.user_id, this.contact_id_2, cb),
|
|
cb => touchContact(this.user_id, this.contact_id_3, cb)
|
|
], done);
|
|
});
|
|
|
|
it("should return a sorted list of contacts", function(done) {
|
|
return request({
|
|
method: "GET",
|
|
url: `${HOST}/user/${this.user_id}/contacts`,
|
|
json: true
|
|
}, (error, response, body) => {
|
|
response.statusCode.should.equal(200);
|
|
body.contact_ids.should.deep.equal([this.contact_id_2, this.contact_id_3, this.contact_id_1]);
|
|
return done();
|
|
});
|
|
});
|
|
|
|
return it("should respect a limit and only return top X contacts", function() {
|
|
return request({
|
|
method: "GET",
|
|
url: `${HOST}/user/${this.user_id}/contacts?limit=2`,
|
|
json: true
|
|
}, (error, response, body) => {
|
|
response.statusCode.should.equal(200);
|
|
body.contact_ids.should.deep.equal([this.contact_id_2, this.contact_id_3]);
|
|
return done();
|
|
});
|
|
});
|
|
});
|
|
});
|
|
|