/* eslint-disable camelcase, 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 sinon = require('sinon'); const chai = require('chai'); const should = chai.should(); const modulePath = "../../../app/js/NotificationsController.js"; const SandboxedModule = require('sandboxed-module'); const assert = require('assert'); const user_id = "51dc93e6fb625a261300003b"; const notification_id = "fb625a26f09d"; const notification_key = "my-notification-key"; describe('Notifications Controller', function() { beforeEach(function() { const self = this; this.notifications = {}; this.controller = SandboxedModule.require(modulePath, { requires: { 'logger-sharelatex': { log() {} }, './Notifications':this.notifications, 'metrics-sharelatex': { inc: sinon.stub() } } } ); return this.stubbedNotification = [{key: notification_key, messageOpts:"some info", templateKey:"template-key"}];}); describe("getUserNotifications", () => it('should ask the notifications for the users notifications', function(done){ this.notifications.getUserNotifications = sinon.stub().callsArgWith(1, null, this.stubbedNotification); const req = { params: { user_id } }; return this.controller.getUserNotifications(req, { json:result=> { result.should.equal(this.stubbedNotification); this.notifications.getUserNotifications.calledWith(user_id).should.equal(true); return done(); } } ); }) ); describe("addNotification", () => it("should tell the notifications to add the notification for the user", function(done){ this.notifications.addNotification = sinon.stub().callsArgWith(2); const req = { params: { user_id }, body: this.stubbedNotification }; return this.controller.addNotification(req, { send:result=> { this.notifications.addNotification.calledWith(user_id, this.stubbedNotification).should.equal(true); return done(); } } ); }) ); describe("removeNotificationId", () => it("should tell the notifications to mark the notification Id as read", function(done){ this.notifications.removeNotificationId = sinon.stub().callsArgWith(2); const req = { params: { user_id, notification_id } }; return this.controller.removeNotificationId(req, { send:result=> { this.notifications.removeNotificationId.calledWith(user_id, notification_id).should.equal(true); return done(); } } ); }) ); describe("removeNotificationKey", () => it("should tell the notifications to mark the notification Key as read", function(done){ this.notifications.removeNotificationKey = sinon.stub().callsArgWith(2); const req = { params: { user_id }, body: {key: notification_key} }; return this.controller.removeNotificationKey(req, { send:result=> { this.notifications.removeNotificationKey.calledWith(user_id, notification_key).should.equal(true); return done(); } } ); }) ); return describe("removeNotificationByKeyOnly", () => it("should tell the notifications to mark the notification Key as read", function(done){ this.notifications.removeNotificationByKeyOnly = sinon.stub().callsArgWith(1); const req = { params: { key: notification_key } }; return this.controller.removeNotificationByKeyOnly(req, { send:result=> { this.notifications.removeNotificationByKeyOnly.calledWith(notification_key).should.equal(true); return done(); } } ); }) ); });