UserMembershipsHandlerTests.coffee 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. sinon = require('sinon')
  2. assertCalledWith = sinon.assert.calledWith
  3. ObjectId = require("../../../../app/js/infrastructure/mongojs").ObjectId
  4. modulePath = "../../../../app/js/Features/UserMembership/UserMembershipsHandler"
  5. SandboxedModule = require("sandboxed-module")
  6. describe 'UserMembershipsHandler', ->
  7. beforeEach ->
  8. @user = _id: ObjectId()
  9. @Institution =
  10. updateMany: sinon.stub().yields(null)
  11. @Subscription =
  12. updateMany: sinon.stub().yields(null)
  13. @Publisher =
  14. updateMany: sinon.stub().yields(null)
  15. @UserMembershipsHandler = SandboxedModule.require modulePath, requires:
  16. '../../models/Institution': Institution: @Institution
  17. '../../models/Subscription': Subscription: @Subscription
  18. '../../models/Publisher': Publisher: @Publisher
  19. describe 'remove user', ->
  20. it 'remove user from all entities', (done) ->
  21. @UserMembershipsHandler.removeUserFromAllEntities @user._id, (error) =>
  22. assertCalledWith(
  23. @Institution.updateMany,
  24. {},
  25. { "$pull": { managerIds: @user._id } }
  26. )
  27. assertCalledWith(
  28. @Subscription.updateMany,
  29. {},
  30. { "$pull": { manager_ids: @user._id } }
  31. )
  32. assertCalledWith(
  33. @Publisher.updateMany,
  34. {},
  35. { "$pull": { managerIds: @user._id } }
  36. )
  37. done()