| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100 |
- should = require('chai').should()
- SandboxedModule = require('sandboxed-module')
- assert = require('assert')
- path = require('path')
- modulePath = path.join __dirname, '../../../../app/js/Features/BetaProgram/BetaProgramHandler'
- sinon = require("sinon")
- expect = require("chai").expect
- describe 'BetaProgramHandler', ->
- beforeEach ->
- @user_id = "some_id"
- @user =
- _id: @user_id
- email: 'user@example.com'
- features: {}
- betaProgram: false
- save: sinon.stub().callsArgWith(0, null)
- @handler = SandboxedModule.require modulePath, requires:
- "../../models/User": {
- User:
- findById: sinon.stub().callsArgWith(1, null, @user)
- },
- "logger-sharelatex": @logger = {
- log: sinon.stub()
- err: sinon.stub()
- },
- "../../infrastructure/Metrics": @logger = {
- inc: sinon.stub()
- }
- describe "optIn", ->
- beforeEach ->
- @user.betaProgram = false
- @call = (callback) =>
- @handler.optIn @user_id, callback
- it "should set betaProgram = true on user object", (done) ->
- @call (err) =>
- @user.betaProgram.should.equal true
- 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()
- 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()
|