| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104 |
- chai = require('chai')
- sinon = require("sinon")
- should = chai.should()
- modulePath = "../../../../app/js/DocArchiveManager.js"
- SandboxedModule = require('sandboxed-module')
- ObjectId = require("mongojs").ObjectId
- describe "DocArchiveManager", ->
- beforeEach ->
- @DocArchiveManager = SandboxedModule.require modulePath, requires:
- "./MongoManager" : @MongoManager = sinon.stub()
- "./MongoAWS" : @MongoAWS = sinon.stub()
- "./LockManager" : @LockManager = sinon.stub()
- "./DocstoreHandler" : @DocstoreHandler = sinon.stub()
- "logger-sharelatex": @logger = {log: sinon.stub(), error: sinon.stub(), err:->}
- "settings-sharelatex": @settings =
- filestore:
- backend: 's3'
- @mongoDocs = [{
- _id: ObjectId()
- }, {
- _id: ObjectId()
- }, {
- _id: ObjectId()
- }]
- @project_id = "project-id-123"
- @doc_id = "doc-id-123"
- @callback = sinon.stub()
-
- describe "archiveAllDocsChanges", ->
- it "should archive all project docs change", (done)->
- @DocstoreHandler.getAllDocs = sinon.stub().callsArgWith(1, null, @mongoDocs)
- @DocArchiveManager.archiveDocChangesWithLock = sinon.stub().callsArgWith(2, null)
-
- @DocArchiveManager.archiveAllDocsChanges @project_id, (err)=>
- @DocArchiveManager.archiveDocChangesWithLock.calledWith(@project_id, @mongoDocs[0]._id).should.equal true
- @DocArchiveManager.archiveDocChangesWithLock.calledWith(@project_id, @mongoDocs[1]._id).should.equal true
- @DocArchiveManager.archiveDocChangesWithLock.calledWith(@project_id, @mongoDocs[2]._id).should.equal true
- should.not.exist err
- done()
- describe "archiveDocChangesWithLock", ->
- beforeEach ->
- @DocArchiveManager.archiveDocChanges = sinon.stub().callsArg(2)
- @LockManager.runWithLock = sinon.stub().callsArg(2)
- @DocArchiveManager.archiveDocChangesWithLock @project_id, @doc_id, @callback
- it "should run archiveDocChangesWithLock with the lock", ->
- @LockManager.runWithLock
- .calledWith(
- "HistoryArchiveLock:#{@doc_id}"
- )
- .should.equal true
- it "should call the callback", ->
- @callback.called.should.equal true
- describe "archiveDocChanges", ->
- beforeEach ->
- @update = { _id: ObjectId(), op: "op", meta: "meta", v: "v"}
- @MongoManager.getDocChangesCount = sinon.stub().callsArg(1)
- @MongoManager.getLastCompressedUpdate = sinon.stub().callsArgWith(1, null, @update)
- @MongoAWS.archiveDocHistory = sinon.stub().callsArg(2)
- @MongoManager.markDocHistoryAsArchived = sinon.stub().callsArg(2)
- @DocArchiveManager.archiveDocChanges @project_id, @doc_id, @callback
- it "should run markDocHistoryAsArchived with doc_id and update", ->
- @MongoManager.markDocHistoryAsArchived
- .calledWith(
- @doc_id, @update
- )
- .should.equal true
- it "should call the callback", ->
- @callback.called.should.equal true
-
- describe "unArchiveAllDocsChanges", ->
- it "should unarchive all project docs change", (done)->
- @DocstoreHandler.getAllDocs = sinon.stub().callsArgWith(1, null, @mongoDocs)
- @DocArchiveManager.unArchiveDocChanges = sinon.stub().callsArgWith(2, null)
-
- @DocArchiveManager.unArchiveAllDocsChanges @project_id, (err)=>
- @DocArchiveManager.unArchiveDocChanges.calledWith(@project_id, @mongoDocs[0]._id).should.equal true
- @DocArchiveManager.unArchiveDocChanges.calledWith(@project_id, @mongoDocs[1]._id).should.equal true
- @DocArchiveManager.unArchiveDocChanges.calledWith(@project_id, @mongoDocs[2]._id).should.equal true
- should.not.exist err
- done()
- describe "unArchiveDocChanges", ->
- beforeEach ->
- @MongoManager.getArchivedDocChanges = sinon.stub().callsArg(1)
- @MongoAWS.unArchiveDocHistory = sinon.stub().callsArg(2)
- @MongoManager.markDocHistoryAsUnarchived = sinon.stub().callsArg(1)
- @DocArchiveManager.unArchiveDocChanges @project_id, @doc_id, @callback
- it "should run markDocHistoryAsUnarchived with doc_id", ->
- @MongoManager.markDocHistoryAsUnarchived
- .calledWith(
- @doc_id
- )
- .should.equal true
- it "should call the callback", ->
- @callback.called.should.equal true
|