Add opt-out action to beta page

This commit is contained in:
Shane Kilkelly
2016-06-08 15:11:39 +01:00
parent 58d7d7bf74
commit 8f1fec8c4f
6 changed files with 112 additions and 8 deletions
@@ -34,6 +34,7 @@ describe 'BetaProgramHandler', ->
describe "optIn", ->
beforeEach ->
@user.betaProgram = false
@call = (callback) =>
@handler.optIn @user_id, callback
@@ -63,3 +64,37 @@ describe 'BetaProgramHandler', ->
expect(err).to.not.equal null
expect(err).to.be.instanceof Error
done()
describe "optOut", ->
beforeEach ->
@user.betaProgram = true
@call = (callback) =>
@handler.optOut @user_id, callback
it "should set betaProgram = true on user object", (done) ->
@call (err) =>
@user.betaProgram.should.equal false
done()
it "should call user.save", (done) ->
@call (err) =>
@user.save.callCount.should.equal 1
done()
it "should not produce an error", (done) ->
@call (err) =>
expect(err).to.equal null
expect(err).to.not.be.instanceof Error
done()
describe "when user.save produces an error", ->
beforeEach ->
@user.save.callsArgWith(0, new Error('woops'))
it "should produce an error", (done) ->
@call (err) =>
expect(err).to.not.equal null
expect(err).to.be.instanceof Error
done()