|
|
@@ -0,0 +1,68 @@
|
|
|
+async = require('async')
|
|
|
+expect = require('chai').expect
|
|
|
+request = require('request').defaults({
|
|
|
+ baseUrl: 'http://localhost:3026'
|
|
|
+})
|
|
|
+
|
|
|
+RealTimeClient = require "./helpers/RealTimeClient"
|
|
|
+FixturesManager = require "./helpers/FixturesManager"
|
|
|
+
|
|
|
+describe 'HttpControllerTests', ->
|
|
|
+ describe 'without a user', ->
|
|
|
+ it 'should return 404 for the client view', (done) ->
|
|
|
+ client_id = 'not-existing'
|
|
|
+ request.get {
|
|
|
+ url: "/clients/#{client_id}"
|
|
|
+ json: true
|
|
|
+ }, (error, response, data) ->
|
|
|
+ return done(error) if error
|
|
|
+ expect(response.statusCode).to.equal(404)
|
|
|
+ done()
|
|
|
+
|
|
|
+ describe 'with a user and after joining a project', ->
|
|
|
+ before (done) ->
|
|
|
+ async.series [
|
|
|
+ (cb) =>
|
|
|
+ FixturesManager.setUpProject {
|
|
|
+ privilegeLevel: "owner"
|
|
|
+ }, (error, {@project_id, @user_id}) =>
|
|
|
+ cb(error)
|
|
|
+
|
|
|
+ (cb) =>
|
|
|
+ FixturesManager.setUpDoc @project_id, {}, (error, {@doc_id}) =>
|
|
|
+ cb(error)
|
|
|
+
|
|
|
+ (cb) =>
|
|
|
+ @client = RealTimeClient.connect()
|
|
|
+ @client.on "connectionAccepted", cb
|
|
|
+
|
|
|
+ (cb) =>
|
|
|
+ @client.emit "joinProject", {@project_id}, cb
|
|
|
+
|
|
|
+ (cb) =>
|
|
|
+ @client.emit "joinDoc", @doc_id, cb
|
|
|
+ ], done
|
|
|
+
|
|
|
+ it 'should send a client view', (done) ->
|
|
|
+ request.get {
|
|
|
+ url: "/clients/#{@client.socket.sessionid}"
|
|
|
+ json: true
|
|
|
+ }, (error, response, data) =>
|
|
|
+ return done(error) if error
|
|
|
+ expect(response.statusCode).to.equal(200)
|
|
|
+ expect(data.connected_time).to.exist
|
|
|
+ delete data.connected_time
|
|
|
+ # .email is not set in the session
|
|
|
+ delete data.email
|
|
|
+ expect(data).to.deep.equal({
|
|
|
+ client_id: @client.socket.sessionid,
|
|
|
+ first_name: 'Joe',
|
|
|
+ last_name: 'Bloggs',
|
|
|
+ project_id: @project_id,
|
|
|
+ user_id: @user_id,
|
|
|
+ rooms: [
|
|
|
+ @project_id,
|
|
|
+ @doc_id,
|
|
|
+ ]
|
|
|
+ })
|
|
|
+ done()
|