| 12345678910111213141516171819202122232425262728293031323334353637383940 |
- SandboxedModule = require('sandboxed-module')
- assert = require('chai').assert
- require('chai').should()
- sinon = require('sinon')
- modulePath = require('path').join __dirname, '../../../../app/js/Features/Notifications/NotificationsBuilder.js'
- describe 'NotificationsBuilder', ->
- user_id = "123nd3ijdks"
- beforeEach ->
- @handler =
- createNotification: sinon.stub().callsArgWith(6)
- @settings = apis: { v1: { url: 'v1.url', user: '', pass: '' } }
- @body = {id: 1, name: 'stanford', enrolment_ad_html: 'v1 ad content'}
- response = {statusCode: 200}
- @request = sinon.stub().returns(@stubResponse).callsArgWith(1, null, response, @body)
- @controller = SandboxedModule.require modulePath, requires:
- "./NotificationsHandler":@handler
- "settings-sharelatex":@settings
- 'request': @request
- "logger-sharelatex":
- log:->
- err:->
- it 'should call v1 and create affiliation notifications', (done)->
- ip = '192.168.0.1'
- @controller.ipMatcherAffiliation(user_id, ip).create (callback)=>
- @request.calledOnce.should.equal true
- expectedOpts =
- university_id: @body.id
- university_name: @body.name
- content: @body.enrolment_ad_html
- @handler.createNotification.calledWith(
- user_id,
- "ip-matched-affiliation-#{ip}",
- "notification_ip_matched_affiliation",
- expectedOpts
- ).should.equal true
- done()
|