mirror of
https://github.com/codeninjasllc/codecombat.git
synced 2025-03-26 12:50:31 -04:00
🐛Fix missing User reference in trial-requests
This commit is contained in:
parent
455dd813b1
commit
f53d46cb90
3 changed files with 37 additions and 8 deletions
server
spec/server/functional
|
@ -5,6 +5,7 @@ Promise = require 'bluebird'
|
|||
database = require '../commons/database'
|
||||
mongoose = require 'mongoose'
|
||||
TrialRequest = require '../models/TrialRequest'
|
||||
User = require '../models/User'
|
||||
|
||||
module.exports =
|
||||
post: wrap (req, res) ->
|
||||
|
|
|
@ -265,7 +265,7 @@ UserSchema.methods.level = ->
|
|||
xp = @get('points') or 0
|
||||
a = 5
|
||||
b = c = 100
|
||||
if xp > 0 then Math.floor(a * Math.log((1/b) * (xp + c))) + 1 else 1
|
||||
if xp > 0 then Math.floor(a * Math.log((1 / b) * (xp + c))) + 1 else 1
|
||||
|
||||
UserSchema.statics.saveActiveUser = (id, event, done=null) ->
|
||||
# TODO: Disabling this until we know why our app servers CPU grows out of control.
|
||||
|
|
|
@ -15,9 +15,8 @@ fixture = {
|
|||
describe 'POST /db/trial.request', ->
|
||||
URL = getURL('/db/trial.request')
|
||||
ownURL = getURL('/db/trial.request/-/own')
|
||||
|
||||
|
||||
beforeEach utils.wrap (done) ->
|
||||
it 'sets type and properties given', utils.wrap (done) ->
|
||||
yield utils.clearModels([User, TrialRequest])
|
||||
@user = yield utils.initUser()
|
||||
yield utils.loginUser(@user)
|
||||
|
@ -26,14 +25,43 @@ describe 'POST /db/trial.request', ->
|
|||
expect(res.statusCode).toBe(201)
|
||||
expect(body._id).toBeDefined()
|
||||
@trialRequest = yield TrialRequest.findById(body._id)
|
||||
done()
|
||||
|
||||
it 'sets type and properties given', ->
|
||||
expect(@trialRequest.get('type')).toBe('subscription')
|
||||
expect(@trialRequest.get('properties').location).toBe('SF, CA')
|
||||
|
||||
it 'sets applicant to the user\'s id', ->
|
||||
done()
|
||||
|
||||
it 'sets applicant to the user\'s id', utils.wrap (done) ->
|
||||
yield utils.clearModels([User, TrialRequest])
|
||||
@user = yield utils.initUser()
|
||||
yield utils.loginUser(@user)
|
||||
fixture.properties.email = @user.get('email')
|
||||
[res, body] = yield request.postAsync(getURL('/db/trial.request'), { json: fixture })
|
||||
expect(res.statusCode).toBe(201)
|
||||
expect(body._id).toBeDefined()
|
||||
@trialRequest = yield TrialRequest.findById(body._id)
|
||||
expect(@trialRequest.get('applicant').equals(@user._id)).toBe(true)
|
||||
done()
|
||||
|
||||
it 'creates trial request for anonymous user', utils.wrap (done) ->
|
||||
yield utils.clearModels([User, TrialRequest])
|
||||
@user = yield utils.initUser({anonymous: true})
|
||||
yield utils.loginUser(@user)
|
||||
email = 'someone@test.com'
|
||||
fixture.properties.email = email
|
||||
[res, body] = yield request.postAsync(getURL('/db/trial.request'), { json: fixture })
|
||||
expect(res.statusCode).toBe(201)
|
||||
expect(body._id).toBeDefined()
|
||||
@trialRequest = yield TrialRequest.findById(body._id)
|
||||
expect(@trialRequest.get('properties')?.email).toEqual(email)
|
||||
done()
|
||||
|
||||
it 'prevents trial request for anonymous user with conflicting email', utils.wrap (done) ->
|
||||
yield utils.clearModels([User, TrialRequest])
|
||||
@otherUser = yield utils.initUser()
|
||||
@user = yield utils.initUser({anonymous: true})
|
||||
yield utils.loginUser(@user)
|
||||
[res, body] = yield request.postAsync(getURL('/db/trial.request'), { json: true })
|
||||
expect(res.statusCode).toBe(422)
|
||||
done()
|
||||
|
||||
describe 'GET /db/trial.request', ->
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue