ProjectFeaturesTests.coffee 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. expect = require("chai").expect
  2. async = require("async")
  3. User = require "./helpers/User"
  4. request = require "./helpers/request"
  5. settings = require "settings-sharelatex"
  6. joinProject = (user_id, project_id, callback) ->
  7. request.post {
  8. url: "/project/#{project_id}/join"
  9. qs: {user_id}
  10. auth:
  11. user: settings.apis.web.user
  12. pass: settings.apis.web.pass
  13. sendImmediately: true
  14. json: true
  15. jar: false
  16. }, callback
  17. describe "ProjectFeatures", ->
  18. before (done) ->
  19. @timeout(90000)
  20. @owner = new User()
  21. async.series [
  22. (cb) => @owner.login cb
  23. ], done
  24. describe "with private project", ->
  25. before (done) ->
  26. @owner.createProject "private-project", (error, project_id) =>
  27. return done(error) if error?
  28. @project_id = project_id
  29. done()
  30. describe "with an upgraded account", ->
  31. before (done) ->
  32. @owner.upgradeFeatures done
  33. it "should have premium features", (done) ->
  34. joinProject @owner._id, @project_id, (error, response, body) ->
  35. expect(body.project.features.compileGroup).to.equal "priority"
  36. expect(body.project.features.versioning).to.equal true
  37. expect(body.project.features.templates).to.equal true
  38. expect(body.project.features.dropbox).to.equal true
  39. done()
  40. describe "with an basic account", ->
  41. before (done) ->
  42. @owner.downgradeFeatures done
  43. it "should have basic features", (done) ->
  44. joinProject @owner._id, @project_id, (error, response, body) ->
  45. expect(body.project.features.compileGroup).to.equal "standard"
  46. expect(body.project.features.versioning).to.equal false
  47. expect(body.project.features.templates).to.equal false
  48. expect(body.project.features.dropbox).to.equal false
  49. done()