overleaf/services/web/test/UnitTests/coffee/Subscription/SubscriptionDomainHandlerTests.coffee

60 lines
2.2 KiB
CoffeeScript
Raw Normal View History

2015-01-27 13:09:56 -05:00
should = require('chai').should()
SandboxedModule = require('sandboxed-module')
assert = require('assert')
path = require('path')
sinon = require('sinon')
modulePath = path.join __dirname, "../../../../app/js/Features/Subscription/SubscriptionDomainHandler"
2015-01-27 13:09:56 -05:00
expect = require("chai").expect
describe "SubscriptionDomainHandler", ->
2015-01-27 13:09:56 -05:00
beforeEach ->
@adminUser_id = 12345
@settings =
domainLicences: [
{domains:["highcools.site"], adminUser_id:"not this one"}
{domains:["uni.edu", "student.uni.edu"], adminUser_id:@adminUser_id}
]
@SubscriptionGroupHandler =
addUserToGroup: sinon.stub().callsArg(2)
@SubscriptionDomainHandler = SandboxedModule.require modulePath, requires:
2015-01-27 13:09:56 -05:00
"settings-sharelatex":@settings
"logger-sharelatex": log:->
"./SubscriptionGroupHandler": @SubscriptionGroupHandler
describe "_findDomainLicence", ->
it "should find the domain", (done)->
licence = @SubscriptionDomainHandler._findDomainLicence "bob@uni.edu"
2015-01-27 13:09:56 -05:00
licence.adminUser_id.should.equal @adminUser_id
done()
it "should find one of the other emails in the domain list", (done)->
licence = @SubscriptionDomainHandler._findDomainLicence "sally@student.uni.edu"
2015-01-27 13:09:56 -05:00
licence.adminUser_id.should.equal @adminUser_id
done()
it "should return undefined if no licence matches", (done)->
licence = @SubscriptionDomainHandler._findDomainLicence "bob@other.edu"
2015-01-27 13:09:56 -05:00
expect(licence).to.not.exist
done(licence)
describe "autoAllocate", ->
beforeEach ->
@email = "bob@somewhere.com"
@SubscriptionDomainHandler._findDomainLicence = sinon.stub()
2015-01-27 13:09:56 -05:00
it "should call the SubscriptionGroupHandler if there is licence", (done)->
@SubscriptionDomainHandler._findDomainLicence.returns(@settings.domainLicences[1])
@SubscriptionDomainHandler.autoAllocate {email:@email}, (err)=>
2015-01-27 13:09:56 -05:00
@SubscriptionGroupHandler.addUserToGroup.calledWith(@adminUser_id, @email).should.equal true
done()
it "should not call the SubscriptionGroupHandler if there is no licence", (done)->
@SubscriptionDomainHandler._findDomainLicence.returns()
@SubscriptionDomainHandler.autoAllocate {email:@email}, (err)=>
2015-01-27 13:09:56 -05:00
@SubscriptionGroupHandler.addUserToGroup.called.should.equal false
done()