DropboxWebhookControllerTests.coffee 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. SandboxedModule = require('sandboxed-module')
  2. assert = require('assert')
  3. require('chai').should()
  4. sinon = require('sinon')
  5. modulePath = require('path').join __dirname, '../../../../app/js/Features/Dropbox/DropboxWebhookController.js'
  6. describe 'DropboxWebhookController', ->
  7. beforeEach ->
  8. @req =
  9. session:
  10. destroy: ->
  11. @DropboxWebhookController = SandboxedModule.require modulePath, requires:
  12. "./DropboxWebhookHandler": @DropboxWebhookHandler = {}
  13. 'logger-sharelatex':
  14. log:->
  15. err:->
  16. describe "verify", ->
  17. beforeEach ->
  18. @res =
  19. send: sinon.stub()
  20. @req.query =
  21. challenge: @challenge = "foo"
  22. @DropboxWebhookController.verify(@req, @res)
  23. it "should echo the challenge parameter back", ->
  24. @res.send.calledWith(@challenge).should.equal true
  25. describe "webhook", ->
  26. beforeEach ->
  27. @req.body =
  28. delta:
  29. users: @dropbox_uids = [
  30. "123456",
  31. "789123"
  32. ]
  33. @res.send = sinon.stub()
  34. @DropboxWebhookHandler.pollDropboxUids = sinon.stub().callsArg(1)
  35. @DropboxWebhookController.webhook(@req, @res)
  36. it "should poll the Dropbox uids", ->
  37. @DropboxWebhookHandler.pollDropboxUids
  38. .calledWith(@dropbox_uids)
  39. .should.equal true
  40. it "should return success", ->
  41. @res.send
  42. .calledWith(200)
  43. .should.equal true