mirror of
https://github.com/overleaf/overleaf.git
synced 2024-11-21 20:47:08 -05:00
add in acceptance tests
This commit is contained in:
parent
b6106697a0
commit
3959cba071
3 changed files with 75 additions and 5 deletions
|
@ -16,8 +16,8 @@ app = express()
|
|||
|
||||
app.use Metrics.http.monitor(logger)
|
||||
|
||||
app.get '/user/:user_id/contacts', HttpController.getUserContacts
|
||||
app.post '/user/:user_id/contacts', bodyParser.json(limit: "2mb"), HttpController.addUserContacts
|
||||
app.get '/user/:user_id/contacts', HttpController.getContacts
|
||||
app.post '/user/:user_id/contacts', bodyParser.json(limit: "2mb"), HttpController.addContact
|
||||
|
||||
app.get '/status', (req, res)->
|
||||
res.send('contacts is alive')
|
||||
|
@ -33,4 +33,4 @@ port = Settings.internal.contacts.port
|
|||
host = Settings.internal.contacts.host
|
||||
app.listen port, host, (error) ->
|
||||
throw error if error?
|
||||
logger.info "Docstore starting up, listening on #{host}:#{port}"
|
||||
logger.info "contacts starting up, listening on #{host}:#{port}"
|
||||
|
|
|
@ -3,6 +3,7 @@ http.globalAgent.maxSockets = 300
|
|||
|
||||
module.exports =
|
||||
internal:
|
||||
contacts:
|
||||
port: 3036
|
||||
host: "localhost"
|
||||
|
||||
|
|
|
@ -0,0 +1,69 @@
|
|||
sinon = require "sinon"
|
||||
chai = require("chai")
|
||||
chai.should()
|
||||
expect = chai.expect
|
||||
ObjectId = require("mongojs").ObjectId
|
||||
request = require "request"
|
||||
async = require "async"
|
||||
|
||||
HOST = "http://localhost:3036"
|
||||
|
||||
describe "Getting Contacts", ->
|
||||
describe "with no contacts", ->
|
||||
beforeEach ->
|
||||
@user_id = ObjectId().toString()
|
||||
|
||||
it "should return an empty array", (done) ->
|
||||
request {
|
||||
method: "GET"
|
||||
url: "#{HOST}/user/#{@user_id}/contacts"
|
||||
json: true
|
||||
}, (error, response, body) ->
|
||||
response.statusCode.should.equal 200
|
||||
body.contact_ids.should.deep.equal []
|
||||
done()
|
||||
|
||||
describe "with contacts", ->
|
||||
beforeEach (done) ->
|
||||
@user_id = ObjectId().toString()
|
||||
@contact_id_1 = ObjectId().toString()
|
||||
@contact_id_2 = ObjectId().toString()
|
||||
@contact_id_3 = ObjectId().toString()
|
||||
|
||||
touchContact = (user_id, contact_id, cb) ->
|
||||
request({
|
||||
method: "POST"
|
||||
url: "#{HOST}/user/#{user_id}/contacts"
|
||||
json: {
|
||||
contact_id: contact_id
|
||||
}
|
||||
}, cb)
|
||||
|
||||
async.series [
|
||||
# 2 is preferred since touched twice, then 3 since most recent, then 1
|
||||
(cb) => touchContact @user_id, @contact_id_1, cb
|
||||
(cb) => touchContact @user_id, @contact_id_2, cb
|
||||
(cb) => touchContact @user_id, @contact_id_2, cb
|
||||
(cb) => touchContact @user_id, @contact_id_3, cb
|
||||
], done
|
||||
|
||||
it "should return a sorted list of contacts", (done) ->
|
||||
request {
|
||||
method: "GET"
|
||||
url: "#{HOST}/user/#{@user_id}/contacts"
|
||||
json: true
|
||||
}, (error, response, body) =>
|
||||
response.statusCode.should.equal 200
|
||||
body.contact_ids.should.deep.equal [@contact_id_2, @contact_id_3, @contact_id_1]
|
||||
done()
|
||||
|
||||
it "should respect a limit and only return top X contacts", ->
|
||||
request {
|
||||
method: "GET"
|
||||
url: "#{HOST}/user/#{@user_id}/contacts?limit=2"
|
||||
json: true
|
||||
}, (error, response, body) =>
|
||||
response.statusCode.should.equal 200
|
||||
body.contact_ids.should.deep.equal [@contact_id_2, @contact_id_3]
|
||||
done()
|
||||
|
Loading…
Reference in a new issue