/* eslint-disable camelcase, */ // 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 async = require('async') const { expect } = require('chai') const request = require('request').defaults({ baseUrl: 'http://localhost:3026' }) const RealTimeClient = require('./helpers/RealTimeClient') const FixturesManager = require('./helpers/FixturesManager') describe('HttpControllerTests', function () { describe('without a user', function () { return it('should return 404 for the client view', function (done) { const client_id = 'not-existing' return request.get( { url: `/clients/${client_id}`, json: true }, (error, response, data) => { if (error) { return done(error) } expect(response.statusCode).to.equal(404) return done() } ) }) }) return describe('with a user and after joining a project', function () { before(function (done) { return async.series( [ (cb) => { return FixturesManager.setUpProject( { privilegeLevel: 'owner' }, (error, { project_id, user_id }) => { this.project_id = project_id this.user_id = user_id return cb(error) } ) }, (cb) => { return FixturesManager.setUpDoc( this.project_id, {}, (error, { doc_id }) => { this.doc_id = doc_id return cb(error) } ) }, (cb) => { this.client = RealTimeClient.connect() return this.client.on('connectionAccepted', cb) }, (cb) => { return this.client.emit( 'joinProject', { project_id: this.project_id }, cb ) }, (cb) => { return this.client.emit('joinDoc', this.doc_id, cb) } ], done ) }) return it('should send a client view', function (done) { return request.get( { url: `/clients/${this.client.socket.sessionid}`, json: true }, (error, response, data) => { if (error) { return done(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: this.client.socket.sessionid, first_name: 'Joe', last_name: 'Bloggs', project_id: this.project_id, user_id: this.user_id, rooms: [this.project_id, this.doc_id] }) return done() } ) }) }) })