overleaf/services/web/test/unit/coffee/Notifications/NotificationsBuilderTests.coffee
2018-09-05 11:22:26 +01:00

40 lines
1.3 KiB
CoffeeScript

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()