2016-02-18 05:06:21 -05:00
|
|
|
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()
|
2017-06-08 07:12:08 -04:00
|
|
|
convertEmailInvitesToMemberships: sinon.stub().callsArgWith(2)
|
2016-02-18 05:06:21 -05:00
|
|
|
@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
|
|
|
|
|
2016-03-13 18:24:39 -04:00
|
|
|
describe "populateGroupLicenceInvite", ->
|
2016-02-18 05:06:21 -05:00
|
|
|
describe "no licence", ->
|
|
|
|
beforeEach (done)->
|
|
|
|
@SubscriptionDomainHandler.getLicenceUserCanJoin.returns()
|
2016-03-13 18:24:39 -04:00
|
|
|
@UserHandler.populateGroupLicenceInvite @user, done
|
2017-06-08 07:12:08 -04:00
|
|
|
|
|
|
|
it "should call convertEmailInvitesToMemberships", ->
|
|
|
|
@SubscriptionGroupHandler.convertEmailInvitesToMemberships
|
|
|
|
.calledWith(@user.email, @user._id)
|
|
|
|
.should.equal true
|
2016-02-18 05:06:21 -05:00
|
|
|
|
|
|
|
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)
|
2016-03-13 18:24:39 -04:00
|
|
|
@UserHandler.populateGroupLicenceInvite @user, done
|
2016-02-18 05:06:21 -05:00
|
|
|
|
|
|
|
it "should create notifcation", (done)->
|
|
|
|
@NotificationsBuilder.groupPlan.calledWith(@user, @licence).should.equal true
|
|
|
|
done()
|
2017-06-08 07:12:08 -04:00
|
|
|
|
|
|
|
it "should call convertEmailInvitesToMemberships", ->
|
|
|
|
@SubscriptionGroupHandler.convertEmailInvitesToMemberships
|
|
|
|
.calledWith(@user.email, @user._id)
|
|
|
|
.should.equal true
|
2016-02-18 05:06:21 -05:00
|
|
|
|
|
|
|
describe "with matching licence user is already in", ->
|
|
|
|
beforeEach (done)->
|
|
|
|
@SubscriptionDomainHandler.getLicenceUserCanJoin.returns(@licence)
|
|
|
|
@SubscriptionGroupHandler.isUserPartOfGroup.callsArgWith(2, null, true)
|
2016-03-13 18:24:39 -04:00
|
|
|
@UserHandler.populateGroupLicenceInvite @user, done
|
2016-02-18 05:06:21 -05:00
|
|
|
|
|
|
|
it "should create notifcation", (done)->
|
|
|
|
@NotificationsBuilder.groupPlan.called.should.equal false
|
2017-06-08 07:12:08 -04:00
|
|
|
done()
|
|
|
|
|
|
|
|
it "should call convertEmailInvitesToMemberships", ->
|
|
|
|
@SubscriptionGroupHandler.convertEmailInvitesToMemberships
|
|
|
|
.calledWith(@user.email, @user._id)
|
|
|
|
.should.equal true
|