overleaf/services/web/test/acceptance/src/SubscriptionFeaturesTests.js
nate stemen aa48d639a0 Merge pull request #2560 from overleaf/ta-group-admin-no-features
Don't Give Features To Group Admins

GitOrigin-RevId: 3588aff773bdc4cf18d18ce52f2c1b73462d806e
2020-02-04 04:18:55 +00:00

74 lines
2.2 KiB
JavaScript

const { expect } = require('chai')
const async = require('async')
const User = require('./helpers/User')
const Subscription = require('./helpers/Subscription')
describe('Subscriptions', function() {
describe('features', function() {
describe('individual subscriptions', function() {
beforeEach(function(done) {
this.adminUser = new User()
async.series(
[
cb => this.adminUser.ensureUserExists(cb),
cb => {
this.subscription = new Subscription({
adminId: this.adminUser._id,
groupPlan: false,
planCode: 'professional'
})
this.subscription.ensureExists(cb)
},
cb => this.subscription.refreshUsersFeatures(cb)
],
done
)
})
it('should give features to admin', function(done) {
this.adminUser.getFeatures((error, features) => {
expect(features.collaborators).to.equal(-1)
done(error)
})
})
})
describe('group subscriptions', function() {
beforeEach(function(done) {
this.adminUser = new User()
this.memberUser = new User()
async.series(
[
cb => this.adminUser.ensureUserExists(cb),
cb => this.memberUser.ensureUserExists(cb),
cb => {
this.subscription = new Subscription({
adminId: this.adminUser._id,
memberIds: [this.memberUser._id],
groupPlan: true,
planCode: 'professional'
})
this.subscription.ensureExists(cb)
},
cb => this.subscription.refreshUsersFeatures(cb)
],
done
)
})
it('should give features to member', function(done) {
this.memberUser.getFeatures((error, features) => {
expect(features.collaborators).to.equal(-1)
done(error)
})
})
it('should not give features to admin', function(done) {
this.adminUser.getFeatures((error, features) => {
expect(features.collaborators).to.equal(1)
done(error)
})
})
})
})
})