NotificationsBuilderTests.coffee 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. SandboxedModule = require('sandboxed-module')
  2. assert = require('chai').assert
  3. require('chai').should()
  4. sinon = require('sinon')
  5. modulePath = require('path').join __dirname, '../../../../app/js/Features/Notifications/NotificationsBuilder.js'
  6. describe 'NotificationsBuilder', ->
  7. user_id = "123nd3ijdks"
  8. beforeEach ->
  9. @handler =
  10. createNotification: sinon.stub().callsArgWith(6)
  11. @settings = apis: { v1: { url: 'v1.url', user: '', pass: '' } }
  12. @body = {id: 1, name: 'stanford', enrolment_ad_html: 'v1 ad content'}
  13. response = {statusCode: 200}
  14. @request = sinon.stub().returns(@stubResponse).callsArgWith(1, null, response, @body)
  15. @controller = SandboxedModule.require modulePath, requires:
  16. "./NotificationsHandler":@handler
  17. "settings-sharelatex":@settings
  18. 'request': @request
  19. "logger-sharelatex":
  20. log:->
  21. err:->
  22. it 'should call v1 and create affiliation notifications', (done)->
  23. ip = '192.168.0.1'
  24. @controller.ipMatcherAffiliation(user_id).create ip, (callback)=>
  25. @request.calledOnce.should.equal true
  26. expectedOpts =
  27. university_name: @body.name
  28. content: @body.enrolment_ad_html
  29. @handler.createNotification.calledWith(
  30. user_id,
  31. "ip-matched-affiliation-#{@body.id}",
  32. "notification_ip_matched_affiliation",
  33. expectedOpts
  34. ).should.equal true
  35. done()