| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 |
- const SandboxedModule = require('sandboxed-module')
- require('chai').should()
- const sinon = require('sinon')
- const modulePath = require('path').join(
- __dirname,
- '../../../../app/src/Features/Referal/ReferalFeatures.js'
- )
- describe('ReferalFeatures', function() {
- beforeEach(function() {
- this.ReferalFeatures = SandboxedModule.require(modulePath, {
- globals: {
- console: console
- },
- requires: {
- '../../models/User': {
- User: (this.User = {})
- },
- 'settings-sharelatex': (this.Settings = {}),
- 'logger-sharelatex': {
- log() {},
- err() {}
- }
- }
- })
- this.callback = sinon.stub()
- this.referal_id = 'referal-id-123'
- this.referal_medium = 'twitter'
- this.user_id = 'user-id-123'
- this.new_user_id = 'new-user-id-123'
- })
- describe('getBonusFeatures', function() {
- beforeEach(function() {
- this.refered_user_count = 3
- this.Settings.bonus_features = {
- '3': {
- collaborators: 3,
- dropbox: false,
- versioning: false
- }
- }
- const stubbedUser = {
- refered_user_count: this.refered_user_count,
- features: { collaborators: 1, dropbox: false, versioning: false }
- }
- this.User.findOne = sinon.stub().callsArgWith(2, null, stubbedUser)
- this.ReferalFeatures.getBonusFeatures(this.user_id, this.callback)
- })
- it('should get the users number of refered user', function() {
- this.User.findOne.calledWith({ _id: this.user_id }).should.equal(true)
- })
- it('should call the callback with the features', function() {
- this.callback
- .calledWith(null, this.Settings.bonus_features[3])
- .should.equal(true)
- })
- })
- describe('when the user is not at a bonus level', function() {
- beforeEach(function() {
- this.refered_user_count = 0
- this.Settings.bonus_features = {
- '1': {
- collaborators: 3,
- dropbox: false,
- versioning: false
- }
- }
- this.User.findOne = sinon
- .stub()
- .callsArgWith(2, null, { refered_user_count: this.refered_user_count })
- this.ReferalFeatures.getBonusFeatures(this.user_id, this.callback)
- })
- it('should get the users number of refered user', function() {
- this.User.findOne.calledWith({ _id: this.user_id }).should.equal(true)
- })
- it('should call the callback with no features', function() {
- this.callback.calledWith(null, {}).should.equal(true)
- })
- })
- })
|