|
@@ -1,60 +0,0 @@
|
|
|
-SandboxedModule = require('sandboxed-module')
|
|
|
|
|
-assert = require('assert')
|
|
|
|
|
-require('chai').should()
|
|
|
|
|
-sinon = require('sinon')
|
|
|
|
|
-modulePath = require('path').join __dirname, '../../../../app/js/Features/ThirdPartyDataStore/TpdsPollingBackgroundTasks.js'
|
|
|
|
|
-describe 'third party data store', ->
|
|
|
|
|
-
|
|
|
|
|
- beforeEach ->
|
|
|
|
|
- @request = post:sinon.stub().callsArgWith(1, null)
|
|
|
|
|
- @userModel = {}
|
|
|
|
|
- @redis = auth:->
|
|
|
|
|
- @settings =
|
|
|
|
|
- apis:
|
|
|
|
|
- thirdPartyDataStore: {url: "http://tpds.com"}
|
|
|
|
|
- redis:
|
|
|
|
|
- web:{}
|
|
|
|
|
-
|
|
|
|
|
- @poller = SandboxedModule.require modulePath, requires:
|
|
|
|
|
- "redis":createClient:=>@redis
|
|
|
|
|
- "settings-sharelatex":@settings
|
|
|
|
|
- "request":@request
|
|
|
|
|
- '../../models/User':User:@userModel
|
|
|
|
|
- 'logger-sharelatex':
|
|
|
|
|
- log:->
|
|
|
|
|
- err:->
|
|
|
|
|
-
|
|
|
|
|
- describe "polling user have dropbox", ->
|
|
|
|
|
- it 'should find the users with project', (done)->
|
|
|
|
|
- users = [{_id:"1234"}, {_id:"213oija"}, {_id:"2iojdsjoidsk"}]
|
|
|
|
|
- @userModel.find = sinon.stub().callsArgWith(2, null, users)
|
|
|
|
|
- @poller._sendToTpds = sinon.stub().callsArgWith(1, null)
|
|
|
|
|
- @poller._markPollHappened = sinon.stub()
|
|
|
|
|
- @poller.pollUsersWithDropbox (err)=>
|
|
|
|
|
- @userModel.find.calledWith({"dropbox.access_token.oauth_token_secret":{"$exists":true}, "features.dropbox":true}, "_id").should.equal true
|
|
|
|
|
- @poller._sendToTpds.calledWith([users[0]._id, users[1]._id, users[2]._id,]).should.equal true
|
|
|
|
|
- @poller._markPollHappened.called.should.equal true
|
|
|
|
|
- done()
|
|
|
|
|
-
|
|
|
|
|
- describe "sending user ids to tpds", ->
|
|
|
|
|
- it 'should put it into json and post it over', (done)->
|
|
|
|
|
- users = [{_id:"1234"}, {_id:"213oija"}, {_id:"2iojdsjoidsk"}]
|
|
|
|
|
- @poller._sendToTpds users, =>
|
|
|
|
|
- @request.post.calledWith({uri:"#{@settings.apis.thirdPartyDataStore.url}/user/poll", json:{user_ids:users}}).should.equal true
|
|
|
|
|
- done()
|
|
|
|
|
-
|
|
|
|
|
- describe "marking the last time the poller was made and get it out again", ->
|
|
|
|
|
- it "should put the date into redis", (done)->
|
|
|
|
|
- @redis.set = sinon.stub().callsArgWith(2)
|
|
|
|
|
- @poller._markPollHappened (err)=>
|
|
|
|
|
- @redis.set.calledWith("LAST_TIME_POLL_HAPPEND_KEY").should.equal true
|
|
|
|
|
- done()
|
|
|
|
|
-
|
|
|
|
|
- it "should get the date from redis", (done)->
|
|
|
|
|
- date = new Date()
|
|
|
|
|
- @redis.get = sinon.stub().callsArgWith(1, null, date)
|
|
|
|
|
- @poller.getLastTimePollHappned (err, lastTime)->
|
|
|
|
|
- lastTime.should.equal date
|
|
|
|
|
- done()
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|