overleaf/services/web/test/acceptance/coffee/ProjectFeaturesTests.coffee

62 lines
1.8 KiB
CoffeeScript
Raw Normal View History

expect = require("chai").expect
async = require("async")
User = require "./helpers/User"
request = require "./helpers/request"
settings = require "settings-sharelatex"
joinProject = (user_id, project_id, callback) ->
request.post {
url: "/project/#{project_id}/join"
qs: {user_id}
auth:
user: settings.apis.web.user
pass: settings.apis.web.pass
sendImmediately: true
json: true
jar: false
}, callback
describe "ProjectFeatures", ->
before (done) ->
@timeout(90000)
@owner = new User()
async.series [
(cb) => @owner.login cb
], done
describe "with private project", ->
before (done) ->
@owner.createProject "private-project", (error, project_id) =>
return done(error) if error?
@project_id = project_id
done()
describe "with an upgraded account", ->
before (done) ->
@owner.upgradeFeatures done
after (done) ->
@owner.defaultFeatures done
it "should have premium features", (done) ->
joinProject @owner._id, @project_id, (error, response, body) ->
expect(body.project.features.compileGroup).to.equal "priority"
expect(body.project.features.versioning).to.equal true
expect(body.project.features.templates).to.equal true
expect(body.project.features.dropbox).to.equal true
done()
describe "with an basic account", ->
before (done) ->
@owner.downgradeFeatures done
after (done) ->
@owner.defaultFeatures done
it "should have basic features", (done) ->
joinProject @owner._id, @project_id, (error, response, body) ->
expect(body.project.features.compileGroup).to.equal "standard"
expect(body.project.features.versioning).to.equal false
expect(body.project.features.templates).to.equal false
expect(body.project.features.dropbox).to.equal false
done()