UserFeaturesUpdaterTests.coffee 1.1 KB

12345678910111213141516171819202122232425262728293031323334
  1. SandboxedModule = require('sandboxed-module')
  2. should = require('chai').should()
  3. sinon = require 'sinon'
  4. modulePath = "../../../../app/js/Features/Subscription/UserFeaturesUpdater"
  5. assert = require("chai").assert
  6. describe "UserFeaturesUpdater", ->
  7. beforeEach ->
  8. @User =
  9. update: sinon.stub().callsArgWith(2)
  10. @PlansLocator =
  11. findLocalPlanInSettings : sinon.stub()
  12. @UserFeaturesUpdater = SandboxedModule.require modulePath, requires:
  13. '../../models/User': User:@User
  14. "logger-sharelatex": log:->
  15. './PlansLocator': @PlansLocator
  16. describe "updateFeatures", ->
  17. it "should send the users features", (done)->
  18. user_id = "5208dd34438842e2db000005"
  19. plan_code = "student"
  20. @features = features:{versioning:true, collaborators:10}
  21. @PlansLocator.findLocalPlanInSettings = sinon.stub().returns(@features)
  22. @UserFeaturesUpdater.updateFeatures user_id, plan_code, (err, features)=>
  23. update = {"features.versioning":true, "features.collaborators":10}
  24. @User.update.calledWith({"_id":user_id}, update).should.equal true
  25. features.should.deep.equal @features.features
  26. done()