Skip to content
Snippets Groups Projects
Commit 7e9cf144 authored by Shane Kilkelly's avatar Shane Kilkelly
Browse files

Add unit test to cover project features.

parent 6ea7a7c7
No related branches found
No related tags found
No related merge requests found
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
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
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()
...@@ -51,6 +51,34 @@ class User ...@@ -51,6 +51,34 @@ class User
ensure_admin: (callback = (error) ->) -> ensure_admin: (callback = (error) ->) ->
db.users.update {_id: ObjectId(@id)}, { $set: { isAdmin: true }}, callback db.users.update {_id: ObjectId(@id)}, { $set: { isAdmin: true }}, callback
upgradeFeatures: (callback = (error) -> ) ->
features = {
collaborators: -1 # Infinite
versioning: true
dropbox:true
compileTimeout: 60
compileGroup:"priority"
templates: true
references: true
trackChanges: true
trackChangesVisible: true
}
db.users.update {_id: ObjectId(@id)}, { $set: { features: features }}, callback
downgradeFeatures: (callback = (error) -> ) ->
features = {
collaborators: 1
versioning: false
dropbox:false
compileTimeout: 60
compileGroup:"standard"
templates: false
references: false
trackChanges: false
trackChangesVisible: false
}
db.users.update {_id: ObjectId(@id)}, { $set: { features: features }}, callback
createProject: (name, callback = (error, project_id) ->) -> createProject: (name, callback = (error, project_id) ->) ->
@request.post { @request.post {
url: "/project/new", url: "/project/new",
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment