SubscriptionFeaturesTests.js 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. const { expect } = require('chai')
  2. const async = require('async')
  3. const User = require('./helpers/User')
  4. const Subscription = require('./helpers/Subscription')
  5. describe('Subscriptions', function() {
  6. describe('features', function() {
  7. describe('individual subscriptions', function() {
  8. beforeEach(function(done) {
  9. this.adminUser = new User()
  10. async.series(
  11. [
  12. cb => this.adminUser.ensureUserExists(cb),
  13. cb => {
  14. this.subscription = new Subscription({
  15. adminId: this.adminUser._id,
  16. groupPlan: false,
  17. planCode: 'professional'
  18. })
  19. this.subscription.ensureExists(cb)
  20. },
  21. cb => this.subscription.refreshUsersFeatures(cb)
  22. ],
  23. done
  24. )
  25. })
  26. it('should give features to admin', function(done) {
  27. this.adminUser.getFeatures((error, features) => {
  28. expect(features.collaborators).to.equal(-1)
  29. done(error)
  30. })
  31. })
  32. })
  33. describe('group subscriptions', function() {
  34. beforeEach(function(done) {
  35. this.adminUser = new User()
  36. this.memberUser = new User()
  37. async.series(
  38. [
  39. cb => this.adminUser.ensureUserExists(cb),
  40. cb => this.memberUser.ensureUserExists(cb),
  41. cb => {
  42. this.subscription = new Subscription({
  43. adminId: this.adminUser._id,
  44. memberIds: [this.memberUser._id],
  45. groupPlan: true,
  46. planCode: 'professional'
  47. })
  48. this.subscription.ensureExists(cb)
  49. },
  50. cb => this.subscription.refreshUsersFeatures(cb)
  51. ],
  52. done
  53. )
  54. })
  55. it('should give features to member', function(done) {
  56. this.memberUser.getFeatures((error, features) => {
  57. expect(features.collaborators).to.equal(-1)
  58. done(error)
  59. })
  60. })
  61. it('should not give features to admin', function(done) {
  62. this.adminUser.getFeatures((error, features) => {
  63. expect(features.collaborators).to.equal(1)
  64. done(error)
  65. })
  66. })
  67. })
  68. })
  69. })