| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- SandboxedModule = require('sandboxed-module')
- assert = require('assert')
- require('chai').should()
- sinon = require('sinon')
- modulePath = require('path').join __dirname, '../../../../app/js/Features/Notifications/NotificationsController.js'
- describe 'NotificationsController', ->
- user_id = "123nd3ijdks"
- notification_id = "123njdskj9jlk"
- beforeEach ->
- @handler =
- getUserNotifications: sinon.stub().callsArgWith(1)
- markAsRead: sinon.stub().callsArgWith(2)
- @builder =
- ipMatcherAffiliation: sinon.stub().returns({create: sinon.stub()})
- @settings =
- apis: { v1: { url: 'v1.url', user: '', pass: '' } }
- @req =
- headers: {}
- connection:
- remoteAddress: "192.170.18.1"
- params:
- notification_id:notification_id
- session:
- user:
- _id:user_id
- i18n:
- translate:->
- @AuthenticationController =
- getLoggedInUserId: sinon.stub().returns(@req.session.user._id)
- @controller = SandboxedModule.require modulePath, requires:
- "./NotificationsHandler":@handler
- "./NotificationsBuilder":@builder
- "settings-sharelatex":@settings
- "underscore":@underscore =
- map:(arr)-> return arr
- 'logger-sharelatex':
- log:->
- err:->
- '../Authentication/AuthenticationController': @AuthenticationController
- it 'should ask the handler for all unread notifications', (done)->
- allNotifications = [{_id: notification_id, user_id: user_id}]
- @handler.getUserNotifications = sinon.stub().callsArgWith(1, null, allNotifications)
- @controller.getAllUnreadNotifications @req, send:(body)=>
- body.should.equal allNotifications
- @handler.getUserNotifications.calledWith(user_id).should.equal true
- done()
- it 'should send a delete request when a delete has been received to mark a notification', (done)->
- @controller.markNotificationAsRead @req, send:=>
- @handler.markAsRead.calledWith(user_id, notification_id).should.equal true
- done()
- it 'should call the builder with the user ip if v2', (done)->
- @settings.overleaf = true
- @controller.getAllUnreadNotifications @req, send:(body)=>
- @builder.ipMatcherAffiliation.calledWith(user_id, @req.connection.remoteAddress).should.equal true
- done()
|