/* 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() }, }) }) })