| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- sinon = require('sinon')
- chai = require('chai').should()
- modulePath = "../../../../app/js/Features/Project/ProjectUpdateHandler.js"
- SandboxedModule = require('sandboxed-module')
- describe 'ProjectUpdateHandler', ->
- before ->
- @fakeTime = new Date()
- @clock = sinon.useFakeTimers(@fakeTime.getTime())
- beforeEach ->
- @ProjectModel = class Project
- @ProjectModel.update = sinon.stub().callsArg(3)
- @handler = SandboxedModule.require modulePath, requires:
- '../../models/Project':{Project:@ProjectModel}
- 'logger-sharelatex' : { log: sinon.stub() }
- after ->
- @clock.restore()
- describe 'marking a project as recently updated', ->
- beforeEach ->
- @project_id = "project_id"
- @lastUpdatedAt = 987654321
- @lastUpdatedBy = 'fake-last-updater-id'
- it 'should send an update to mongo', (done)->
- @handler.markAsUpdated @project_id, @lastUpdatedAt, @lastUpdatedBy, (err) =>
- sinon.assert.calledWith(
- @ProjectModel.update,
- {
- _id: @project_id,
- lastUpdated: { $lt: @lastUpdatedAt }
- },
- {
- lastUpdated: @lastUpdatedAt,
- lastUpdatedBy: @lastUpdatedBy
- }
- )
- done()
- it 'should set smart fallbacks', (done)->
- @handler.markAsUpdated @project_id, null, null, (err) =>
- sinon.assert.calledWithMatch(
- @ProjectModel.update,
- {
- _id: @project_id,
- lastUpdated: { $lt: @fakeTime }
- },
- {
- lastUpdated: @fakeTime
- lastUpdatedBy: null
- }
- )
- done()
- describe "markAsOpened", ->
- it 'should send an update to mongo', (done)->
- project_id = "project_id"
- @handler.markAsOpened project_id, (err)=>
- args = @ProjectModel.update.args[0]
- args[0]._id.should.equal project_id
- date = args[1].lastOpened+""
- now = Date.now()+""
- date.substring(0,5).should.equal now.substring(0,5)
- done()
- describe "markAsInactive", ->
- it 'should send an update to mongo', (done)->
- project_id = "project_id"
- @handler.markAsInactive project_id, (err)=>
- args = @ProjectModel.update.args[0]
- args[0]._id.should.equal project_id
- args[1].active.should.equal false
- done()
- describe "markAsActive", ->
- it 'should send an update to mongo', (done)->
- project_id = "project_id"
- @handler.markAsActive project_id, (err)=>
- args = @ProjectModel.update.args[0]
- args[0]._id.should.equal project_id
- args[1].active.should.equal true
- done()
|