mirror of
https://github.com/overleaf/overleaf.git
synced 2024-12-27 08:04:00 +00:00
e753ef3af5
We'll remove that attribute soon, but for the time being we want users to still be able to join the team.
80 lines
2.8 KiB
CoffeeScript
80 lines
2.8 KiB
CoffeeScript
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()
|
|
@createStub = sinon.stub().callsArgWith(0)
|
|
@NotificationsBuilder =
|
|
groupPlan:sinon.stub().returns({create:@createStub})
|
|
|
|
@TeamInvitesHandler =
|
|
createTeamInvitesForLegacyInvitedEmail: sinon.stub().yields()
|
|
|
|
@UserHandler = SandboxedModule.require modulePath, requires:
|
|
"logger-sharelatex": @logger = { log: sinon.stub() }
|
|
"../Notifications/NotificationsBuilder":@NotificationsBuilder
|
|
"../Subscription/SubscriptionDomainHandler":@SubscriptionDomainHandler
|
|
"../Subscription/SubscriptionGroupHandler":@SubscriptionGroupHandler
|
|
"../Subscription/TeamInvitesHandler": @TeamInvitesHandler
|
|
|
|
describe "populateTeamInvites", ->
|
|
beforeEach (done)->
|
|
@UserHandler.notifyDomainLicence = sinon.stub().yields()
|
|
@UserHandler.populateTeamInvites @user, done
|
|
|
|
it "notifies the user about domain licences zzzzz", ->
|
|
@UserHandler.notifyDomainLicence.calledWith(@user).should.eq true
|
|
|
|
it "notifies the user about legacy team invites", ->
|
|
@TeamInvitesHandler.createTeamInvitesForLegacyInvitedEmail
|
|
.calledWith(@user.email).should.eq true
|
|
|
|
describe "notifyDomainLicence", ->
|
|
describe "no licence", ->
|
|
beforeEach (done)->
|
|
@SubscriptionDomainHandler.getLicenceUserCanJoin.returns()
|
|
@UserHandler.populateTeamInvites @user, done
|
|
|
|
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.populateTeamInvites @user, done
|
|
|
|
it "should create notifcation", (done)->
|
|
@NotificationsBuilder.groupPlan.calledWith(@user, @licence).should.equal true
|
|
done()
|
|
|
|
describe "with matching licence user is already in", ->
|
|
beforeEach (done)->
|
|
@SubscriptionDomainHandler.getLicenceUserCanJoin.returns(@licence)
|
|
@SubscriptionGroupHandler.isUserPartOfGroup.callsArgWith(2, null, true)
|
|
@UserHandler.populateTeamInvites @user, done
|
|
|
|
it "should create notifcation", (done)->
|
|
@NotificationsBuilder.groupPlan.called.should.equal false
|
|
done()
|