| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- sinon = require('sinon')
- chai = require('chai')
- should = chai.should()
- modulePath = "../../../../app/js/Features/User/UserHandler.js"
- SandboxedModule = require('sandboxed-module')
- describe "UserHandler", ->
- beforeEach ->
- @user =
- _id:"12390i"
- email: "bob@bob.com"
- remove: sinon.stub().callsArgWith(0)
- @licence =
- subscription_id: 12323434
- @SubscriptionDomainHandler =
- getLicenceUserCanJoin: sinon.stub()
- @SubscriptionGroupHandler =
- isUserPartOfGroup:sinon.stub()
- convertEmailInvitesToMemberships: sinon.stub().callsArgWith(2)
- @createStub = sinon.stub().callsArgWith(0)
- @NotificationsBuilder =
- groupPlan:sinon.stub().returns({create:@createStub})
- @UserHandler = SandboxedModule.require modulePath, requires:
- "logger-sharelatex": @logger = { log: sinon.stub() }
- "../Notifications/NotificationsBuilder":@NotificationsBuilder
- "../Subscription/SubscriptionDomainHandler":@SubscriptionDomainHandler
- "../Subscription/SubscriptionGroupHandler":@SubscriptionGroupHandler
- describe "populateGroupLicenceInvite", ->
- describe "no licence", ->
- beforeEach (done)->
- @SubscriptionDomainHandler.getLicenceUserCanJoin.returns()
- @UserHandler.populateGroupLicenceInvite @user, done
-
- it "should call convertEmailInvitesToMemberships", ->
- @SubscriptionGroupHandler.convertEmailInvitesToMemberships
- .calledWith(@user.email, @user._id)
- .should.equal true
- it "should not call NotificationsBuilder", (done)->
- @NotificationsBuilder.groupPlan.called.should.equal false
- done()
- it "should not call isUserPartOfGroup", (done)->
- @SubscriptionGroupHandler.isUserPartOfGroup.called.should.equal false
- done()
- describe "with matching licence user is not in", ->
- beforeEach (done)->
- @SubscriptionDomainHandler.getLicenceUserCanJoin.returns(@licence)
- @SubscriptionGroupHandler.isUserPartOfGroup.callsArgWith(2, null, false)
- @UserHandler.populateGroupLicenceInvite @user, done
- it "should create notifcation", (done)->
- @NotificationsBuilder.groupPlan.calledWith(@user, @licence).should.equal true
- done()
-
- it "should call convertEmailInvitesToMemberships", ->
- @SubscriptionGroupHandler.convertEmailInvitesToMemberships
- .calledWith(@user.email, @user._id)
- .should.equal true
- describe "with matching licence user is already in", ->
- beforeEach (done)->
- @SubscriptionDomainHandler.getLicenceUserCanJoin.returns(@licence)
- @SubscriptionGroupHandler.isUserPartOfGroup.callsArgWith(2, null, true)
- @UserHandler.populateGroupLicenceInvite @user, done
- it "should create notifcation", (done)->
- @NotificationsBuilder.groupPlan.called.should.equal false
- done()
-
- it "should call convertEmailInvitesToMemberships", ->
- @SubscriptionGroupHandler.convertEmailInvitesToMemberships
- .calledWith(@user.email, @user._id)
- .should.equal true
|