Henry Oswald 12 лет назад
Родитель
Сommit
8670b543b9

+ 26 - 0
services/web/app/coffee/Features/Chat/ChatHandler.coffee

@@ -0,0 +1,26 @@
+request = require("request")
+settings = require("settings-sharelatex")
+logger = require("logger-sharelatex")
+
+module.exports = 
+
+	sendMessage: (project_id, user_id, messageContent, callback)->
+		opts =
+			method:"post"
+			json:
+				content:messageContent
+				user_id:user_id
+			uri:"#{settings.apis.chat.url}/room/#{project_id}/messages"
+		request opts, (err, response, body)->
+			if err?
+				logger.err err:err, "problem sending new message to chat"
+			callback(err, body)
+
+
+
+	getMessages: (project_id, query, callback)->
+		opts =
+			uri:"#{settings.apis.chat.url}/room/#{project_id}/messages"
+			method:"get"
+		request opts, (err, response, body)->
+			callback(err, body)

+ 1 - 0
services/web/app/coffee/Features/User/UserPagesController.coffee

@@ -23,6 +23,7 @@ module.exports =
 			new_email:req.query.new_email || ""
 
 	loginPage : (req, res)->
+		console.info req
 		res.render 'user/login',
 			title: 'Login',
 			redir: req.query.redir

+ 74 - 0
services/web/test/UnitTests/coffee/Chat/ChatHandlerTests.coffee

@@ -0,0 +1,74 @@
+should = require('chai').should()
+SandboxedModule = require('sandboxed-module')
+assert = require('assert')
+path = require('path')
+sinon = require('sinon')
+modulePath = path.join __dirname, "../../../../app/js/Features/Chat/ChatHandler"
+expect = require("chai").expect
+
+describe "ChatHandler", ->
+
+	beforeEach ->
+
+		@settings = 
+			apis:
+				chat:
+					url:"chat.sharelatex.env"
+		@request = sinon.stub()
+		@ChatHandler = SandboxedModule.require modulePath, requires:
+			"settings-sharelatex":@settings
+			"logger-sharelatex": log:->
+			"request": @request
+		@project_id = "3213213kl12j"
+		@user_id = "2k3jlkjs9"
+		@messageContent = "my message here"
+
+	describe "sending message", ->
+
+		beforeEach ->
+			@messageResponse = 
+				message:"Details"
+			@request.callsArgWith(1, null, null, @messageResponse)
+
+		it "should post the data to the chat api", (done)->
+
+			@ChatHandler.sendMessage @project_id, @user_id, @messageContent, (err)=>
+				@opts =
+					method:"post"
+					json:
+						content:@messageContent
+						user_id:@user_id
+					uri:"#{@settings.apis.chat.url}/room/#{@project_id}/messages"
+				@request.calledWith(@opts).should.equal true
+				done()
+
+		it "should return the message from the post", (done)->			
+			@ChatHandler.sendMessage @project_id, @user_id, @messageContent, (err, returnedMessage)=>
+				returnedMessage.should.equal @messageResponse
+				done()
+
+	describe "get messages", ->
+
+		beforeEach ->
+			@returnedMessages = [{content:"hello world"}]
+			@request.callsArgWith(1, null, null, @returnedMessages)
+
+		it "should make get request for room to chat api", (done)->
+
+			@ChatHandler.getMessages @project_id, (err)=>
+				@opts =
+					method:"get"
+					uri:"#{@settings.apis.chat.url}/room/#{@project_id}/messages"
+				@request.calledWith(@opts).should.equal true
+				done()
+
+		it "should return the messages from the request", (done)->
+			@ChatHandler.getMessages @project_id, (err, returnedMessages)=>
+				returnedMessages.should.equal @returnedMessages
+				done()
+
+
+
+
+
+

+ 0 - 1
services/web/test/UnitTests/coffee/Subscription/SubscriptionControllerTests.coffee

@@ -4,7 +4,6 @@ Settings   = require 'settings-sharelatex'
 should = require("chai").should()
 MockRequest = require "../helpers/MockRequest"
 MockResponse = require "../helpers/MockResponse"
-tk = require 'timekeeper'
 modulePath = '../../../../app/js/Features/Subscription/SubscriptionController'
 
 mockSubscriptions =

+ 0 - 1
services/web/test/UnitTests/coffee/Subscription/SubscriptionHandlerTests.coffee

@@ -4,7 +4,6 @@ sinon = require 'sinon'
 querystring = require 'querystring'
 modulePath = "../../../../app/js/Features/Subscription/SubscriptionHandler"
 SubscriptionHandler = require modulePath
-tk = require 'timekeeper'
 
 mockRecurlySubscriptions =
 	"subscription-123-active":