overleaf/services/web/test/unit/src/Notifications/NotificationsControllerTests.js

81 lines
2.3 KiB
JavaScript
Raw Normal View History

/* eslint-disable
camelcase,
max-len,
no-return-assign,
no-unused-vars,
*/
// TODO: This file was created by bulk-decaffeinate.
// Fix any style issues and re-enable lint.
/*
* decaffeinate suggestions:
* DS102: Remove unnecessary code created because of implicit returns
* Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md
*/
const SandboxedModule = require('sandboxed-module')
const assert = require('assert')
const sinon = require('sinon')
const modulePath = require('path').join(
__dirname,
'../../../../app/src/Features/Notifications/NotificationsController.js'
)
describe('NotificationsController', function () {
const user_id = '123nd3ijdks'
const notification_id = '123njdskj9jlk'
beforeEach(function () {
this.handler = {
getUserNotifications: sinon.stub().callsArgWith(1),
markAsRead: sinon.stub().callsArgWith(2)
}
this.req = {
params: {
notification_id
},
session: {
user: {
_id: user_id
}
},
i18n: {
translate() {}
}
}
this.AuthenticationController = {
getLoggedInUserId: sinon.stub().returns(this.req.session.user._id)
}
return (this.controller = SandboxedModule.require(modulePath, {
requires: {
'./NotificationsHandler': this.handler,
'../Authentication/AuthenticationController': this
.AuthenticationController
}
}))
})
it('should ask the handler for all unread notifications', function (done) {
const allNotifications = [{ _id: notification_id, user_id }]
this.handler.getUserNotifications = sinon
.stub()
.callsArgWith(1, null, allNotifications)
return this.controller.getAllUnreadNotifications(this.req, {
send: body => {
body.should.deep.equal(allNotifications)
this.handler.getUserNotifications.calledWith(user_id).should.equal(true)
return done()
}
})
})
it('should send a delete request when a delete has been received to mark a notification', function (done) {
return this.controller.markNotificationAsRead(this.req, {
sendStatus: () => {
this.handler.markAsRead
.calledWith(user_id, notification_id)
.should.equal(true)
return done()
}
})
})
})