diff --git a/app/schemas/models/user.coffee b/app/schemas/models/user.coffee index df9203abc..2a422fab4 100644 --- a/app/schemas/models/user.coffee +++ b/app/schemas/models/user.coffee @@ -284,6 +284,7 @@ _.extend UserSchema.properties, earned: c.RewardSchema 'earned by achievements' purchased: c.RewardSchema 'purchased with gems or money' deleted: {type: 'boolean'} + dateDeleted: c.date() spent: {type: 'number'} stripeCustomerID: { type: 'string' } # TODO: Migrate away from this property diff --git a/server/users/user_handler.coffee b/server/users/user_handler.coffee index eaf85dbea..58d142b0a 100644 --- a/server/users/user_handler.coffee +++ b/server/users/user_handler.coffee @@ -279,6 +279,7 @@ UserHandler = class UserHandler extends Handler obj = user.toObject() for prop, val of obj user.set(prop, undefined) unless prop is '_id' + user.set('dateDeleted', new Date()) user.set('deleted', true) # Hack to get saving of Users to work. Probably should replace these props with strings diff --git a/test/server/functional/user.spec.coffee b/test/server/functional/user.spec.coffee index a3d9a5703..4c6b33383 100644 --- a/test/server/functional/user.spec.coffee +++ b/test/server/functional/user.spec.coffee @@ -331,6 +331,7 @@ describe 'GET /db/user', -> describe 'DELETE /db/user', -> it 'can delete a user', (done) -> loginNewUser (user1) -> + beforeDeleted = new Date() request.del {uri: "#{getURL(urlUser)}/#{user1.id}"}, (err, res) -> expect(err).toBeNull() return done() if err @@ -338,11 +339,11 @@ describe 'DELETE /db/user', -> expect(err).toBeNull() return done() if err expect(user1.get('deleted')).toBe(true) + expect(user1.get('dateDeleted')).toBeGreaterThan(beforeDeleted) + expect(user1.get('dateDeleted')).toBeLessThan(new Date()) for key, value of user1.toObject() - if key is 'deleted' - expect(value).toEqual(true) - else if key isnt '_id' - expect(_.isEmpty(value)).toEqual(true) + continue if key in ['_id', 'deleted', 'dateDeleted'] + expect(_.isEmpty(value)).toEqual(true) done() describe 'Statistics', ->