| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163 |
- /* eslint-disable
- max-len,
- no-return-assign,
- 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 should = require('chai').should()
- const SandboxedModule = require('sandboxed-module')
- const assert = require('assert')
- const path = require('path')
- const sinon = require('sinon')
- const modulePath = path.join(
- __dirname,
- '../../../../app/src/Features/Chat/ChatApiHandler'
- )
- const { expect } = require('chai')
- describe('ChatApiHandler', function() {
- beforeEach(function() {
- this.settings = {
- apis: {
- chat: {
- internal_url: 'chat.sharelatex.env'
- }
- }
- }
- this.request = sinon.stub()
- this.ChatApiHandler = SandboxedModule.require(modulePath, {
- globals: {
- console: console
- },
- requires: {
- 'settings-sharelatex': this.settings,
- 'logger-sharelatex': {
- log: sinon.stub(),
- warn: sinon.stub(),
- error: sinon.stub()
- },
- request: this.request
- }
- })
- this.project_id = '3213213kl12j'
- this.user_id = '2k3jlkjs9'
- this.content = 'my message here'
- return (this.callback = sinon.stub())
- })
- describe('sendGlobalMessage', function() {
- describe('successfully', function() {
- beforeEach(function() {
- this.message = { mock: 'message' }
- this.request.callsArgWith(1, null, { statusCode: 200 }, this.message)
- return this.ChatApiHandler.sendGlobalMessage(
- this.project_id,
- this.user_id,
- this.content,
- this.callback
- )
- })
- it('should post the data to the chat api', function() {
- return this.request
- .calledWith({
- url: `${this.settings.apis.chat.internal_url}/project/${
- this.project_id
- }/messages`,
- method: 'POST',
- json: {
- content: this.content,
- user_id: this.user_id
- }
- })
- .should.equal(true)
- })
- it('should return the message from the post', function() {
- return this.callback.calledWith(null, this.message).should.equal(true)
- })
- })
- describe('with a non-success status code', function() {
- beforeEach(function() {
- this.request.callsArgWith(1, null, { statusCode: 500 })
- return this.ChatApiHandler.sendGlobalMessage(
- this.project_id,
- this.user_id,
- this.content,
- this.callback
- )
- })
- it('should return an error', function() {
- expect(this.callback).to.have.been.calledWith(
- sinon.match.instanceOf(Error).and(sinon.match.has('statusCode', 500))
- )
- })
- })
- })
- describe('getGlobalMessages', function() {
- beforeEach(function() {
- this.messages = [{ mock: 'message' }]
- this.limit = 30
- return (this.before = '1234')
- })
- describe('successfully', function() {
- beforeEach(function() {
- this.request.callsArgWith(1, null, { statusCode: 200 }, this.messages)
- return this.ChatApiHandler.getGlobalMessages(
- this.project_id,
- this.limit,
- this.before,
- this.callback
- )
- })
- it('should make get request for room to chat api', function() {
- return this.request
- .calledWith({
- method: 'GET',
- url: `${this.settings.apis.chat.internal_url}/project/${
- this.project_id
- }/messages`,
- qs: {
- limit: this.limit,
- before: this.before
- },
- json: true
- })
- .should.equal(true)
- })
- it('should return the messages from the request', function() {
- return this.callback.calledWith(null, this.messages).should.equal(true)
- })
- })
- describe('with failure error code', function() {
- beforeEach(function() {
- this.request.callsArgWith(1, null, { statusCode: 500 }, null)
- return this.ChatApiHandler.getGlobalMessages(
- this.project_id,
- this.limit,
- this.before,
- this.callback
- )
- })
- it('should return an error', function() {
- expect(this.callback).to.have.been.calledWith(
- sinon.match.instanceOf(Error).and(sinon.match.has('statusCode', 500))
- )
- })
- })
- })
- })
|