| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130 |
- SandboxedModule = require('sandboxed-module')
- sinon = require('sinon')
- require('chai').should()
- modulePath = require('path').join __dirname, '../../../../app/js/Features/ThirdPartyDataStore/TpdsController.js'
- describe 'TpdsController', ->
- beforeEach ->
- @TpdsUpdateHandler = {}
- @TpdsController = SandboxedModule.require modulePath, requires:
- './TpdsUpdateHandler':@TpdsUpdateHandler
- './UpdateMerger': @UpdateMerger = {}
- 'logger-sharelatex':
- log:->
- err:->
- @user_id = "dsad29jlkjas"
- describe 'getting an update', ->
- it 'should process the update with the update reciver', (done)->
- path = "/projectName/here.txt"
- req =
- pause:->
- params:{0:path, "user_id":@user_id}
- session:
- destroy:->
- headers:
- "x-sl-update-source": @source = "dropbox"
- @TpdsUpdateHandler.newUpdate = sinon.stub().callsArg(5)
- res = send: =>
- @TpdsUpdateHandler.newUpdate.calledWith(@user_id, "projectName","/here.txt", req, @source).should.equal true
- done()
- @TpdsController.mergeUpdate req, res
- describe 'getting a delete update', ->
- it 'should process the delete with the update reciver', (done)->
- path = "/projectName/here.txt"
- req =
- params:{0:path, "user_id":@user_id}
- session:
- destroy:->
- headers:
- "x-sl-update-source": @source = "dropbox"
- @TpdsUpdateHandler.deleteUpdate = sinon.stub().callsArg(4)
- res = send: =>
- @TpdsUpdateHandler.deleteUpdate.calledWith(@user_id, "projectName", "/here.txt", @source).should.equal true
- done()
- @TpdsController.deleteUpdate req, res
- describe 'parseParams', ->
- it 'should take the project name off the start and replace with slash', ->
- path = "noSlashHere"
- req = params:{0:path, user_id:@user_id}
- result = @TpdsController.parseParams(req)
- result.user_id.should.equal @user_id
- result.filePath.should.equal "/"
- result.projectName.should.equal path
- it 'should take the project name off the start and return it with no slashes in', ->
- path = "/project/file.tex"
- req = params:{0:path, user_id:@user_id}
- result = @TpdsController.parseParams(req)
- result.user_id.should.equal @user_id
- result.filePath.should.equal "/file.tex"
- result.projectName.should.equal "project"
- it 'should take the project name of and return a slash for the file path', ->
- path = "/project_name"
- req = params:{0:path, user_id:@user_id}
- result = @TpdsController.parseParams(req)
- result.projectName.should.equal "project_name"
- result.filePath.should.equal "/"
-
- describe 'updateProjectContents', ->
- beforeEach ->
- @UpdateMerger.mergeUpdate = sinon.stub().callsArg(4)
- @req =
- params:
- 0: @path = "chapters/main.tex"
- project_id: @project_id = "project-id-123"
- session:
- destroy: sinon.stub()
- headers:
- "x-sl-update-source": @source = "github"
- @res =
- send: sinon.stub()
-
- @TpdsController.updateProjectContents @req, @res
-
- it "should merge the update", ->
- @UpdateMerger.mergeUpdate
- .calledWith(@project_id, "/" + @path, @req, @source)
- .should.equal true
-
- it "should return a success", ->
- @res.send.calledWith(200).should.equal true
- it "should clear the session", ->
- @req.session.destroy.called.should.equal true
-
- describe 'deleteProjectContents', ->
- beforeEach ->
- @UpdateMerger.deleteUpdate = sinon.stub().callsArg(3)
- @req =
- params:
- 0: @path = "chapters/main.tex"
- project_id: @project_id = "project-id-123"
- session:
- destroy: sinon.stub()
- headers:
- "x-sl-update-source": @source = "github"
- @res =
- send: sinon.stub()
-
- @TpdsController.deleteProjectContents @req, @res
-
- it "should delete the file", ->
- @UpdateMerger.deleteUpdate
- .calledWith(@project_id, "/" + @path, @source)
- .should.equal true
-
- it "should return a success", ->
- @res.send.calledWith(200).should.equal true
- it "should clear the session", ->
- @req.session.destroy.called.should.equal true
|