|
|
@@ -1,71 +1,90 @@
|
|
|
-sinon = require "sinon"
|
|
|
-chai = require("chai")
|
|
|
-chai.should()
|
|
|
-expect = chai.expect
|
|
|
-ObjectId = require("mongojs").ObjectId
|
|
|
-request = require "request"
|
|
|
-async = require "async"
|
|
|
-ContactsApp = require "./ContactsApp"
|
|
|
-HOST = "http://localhost:3036"
|
|
|
+/*
|
|
|
+ * 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", ->
|
|
|
- describe "with no contacts", ->
|
|
|
- beforeEach (done)->
|
|
|
- @user_id = ObjectId().toString()
|
|
|
- ContactsApp.ensureRunning done
|
|
|
+describe("Getting Contacts", function() {
|
|
|
+ describe("with no contacts", function() {
|
|
|
+ beforeEach(function(done){
|
|
|
+ this.user_id = ObjectId().toString();
|
|
|
+ return ContactsApp.ensureRunning(done);
|
|
|
+ });
|
|
|
|
|
|
- it "should return an empty array", (done) ->
|
|
|
- request {
|
|
|
- method: "GET"
|
|
|
- url: "#{HOST}/user/#{@user_id}/contacts"
|
|
|
+ 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 []
|
|
|
- done()
|
|
|
+ }, function(error, response, body) {
|
|
|
+ response.statusCode.should.equal(200);
|
|
|
+ body.contact_ids.should.deep.equal([]);
|
|
|
+ return 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()
|
|
|
+ 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();
|
|
|
|
|
|
- touchContact = (user_id, contact_id, cb) ->
|
|
|
- request({
|
|
|
- method: "POST"
|
|
|
- url: "#{HOST}/user/#{user_id}/contacts"
|
|
|
- json: {
|
|
|
- contact_id: contact_id
|
|
|
- }
|
|
|
- }, cb)
|
|
|
+ const touchContact = (user_id, contact_id, cb) => request({
|
|
|
+ method: "POST",
|
|
|
+ url: `${HOST}/user/${user_id}/contacts`,
|
|
|
+ json: {
|
|
|
+ contact_id
|
|
|
+ }
|
|
|
+ }, cb);
|
|
|
|
|
|
- async.series [
|
|
|
- # 2 is preferred since touched twice, then 3 since most recent, then 1
|
|
|
- (cb) => ContactsApp.ensureRunning cb
|
|
|
- (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
|
|
|
+ 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", (done) ->
|
|
|
- request {
|
|
|
- method: "GET"
|
|
|
- url: "#{HOST}/user/#{@user_id}/contacts"
|
|
|
+ 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 [@contact_id_2, @contact_id_3, @contact_id_1]
|
|
|
- done()
|
|
|
+ }, (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();
|
|
|
+ });
|
|
|
+ });
|
|
|
|
|
|
- it "should respect a limit and only return top X contacts", ->
|
|
|
- request {
|
|
|
- method: "GET"
|
|
|
- url: "#{HOST}/user/#{@user_id}/contacts?limit=2"
|
|
|
+ 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 [@contact_id_2, @contact_id_3]
|
|
|
- done()
|
|
|
+ }, (error, response, body) => {
|
|
|
+ response.statusCode.should.equal(200);
|
|
|
+ body.contact_ids.should.deep.equal([this.contact_id_2, this.contact_id_3]);
|
|
|
+ return done();
|
|
|
+ });
|
|
|
+ });
|
|
|
+ });
|
|
|
+});
|
|
|
|