overleaf/services/track-changes/test/unit/coffee/DocArchive/MongoAWS.coffee

115 lines
3.3 KiB
CoffeeScript
Raw Normal View History

2015-08-31 17:13:18 -04:00
chai = require('chai')
chai.should()
sinon = require("sinon")
modulePath = "../../../../app/js/MongoAWS.js"
SandboxedModule = require('sandboxed-module')
{ObjectId} = require("mongojs")
describe "MongoAWS", ->
beforeEach ->
@MongoAWS = SandboxedModule.require modulePath, requires:
"settings-sharelatex": @settings =
trackchanges:
2015-08-31 17:13:18 -04:00
s3:
secret: "s3-secret"
key: "s3-key"
stores:
doc_history: "s3-bucket"
2015-08-31 17:13:18 -04:00
"child_process": @child_process = {}
"mongo-uri": @mongouri = {}
"logger-sharelatex": @logger = {log: sinon.stub(), error: sinon.stub(), err:->}
"aws-sdk": @awssdk = {}
"fs": @fs = {}
"s3-streams": @s3streams = {}
2015-09-17 09:41:53 -04:00
"./mongojs" : { db: @db = {}, ObjectId: ObjectId }
2015-08-31 17:13:18 -04:00
"JSONStream": @JSONStream = {}
"readline-stream": @readline = sinon.stub()
@project_id = ObjectId().toString()
@doc_id = ObjectId().toString()
2015-09-23 10:34:36 -04:00
@update = { v:123 }
2015-08-31 17:13:18 -04:00
@callback = sinon.stub()
# describe "archiveDocHistory", ->
2015-08-31 17:13:18 -04:00
# beforeEach ->
# @awssdk.config = { update: sinon.stub() }
# @awssdk.S3 = sinon.stub()
# @s3streams.WriteStream = sinon.stub()
# @db.docHistory = {}
# @db.docHistory.on = sinon.stub()
# @db.docHistory.find = sinon.stub().returns @db.docHistory
# @db.docHistory.on.returns
# pipe:->
# pipe:->
# on: (type, cb)->
# on: (type, cb)->
# cb()
# @JSONStream.stringify = sinon.stub()
2015-08-31 17:13:18 -04:00
# @MongoAWS.archiveDocHistory @project_id, @doc_id, @update, @callback
2015-08-31 17:13:18 -04:00
# it "should call the callback", ->
# @callback.called.should.equal true
2015-08-31 17:13:18 -04:00
# describe "unArchiveDocHistory", ->
2015-08-31 17:13:18 -04:00
# beforeEach ->
# @awssdk.config = { update: sinon.stub() }
# @awssdk.S3 = sinon.stub()
# @s3streams.ReadStream = sinon.stub()
2015-08-31 17:13:18 -04:00
# @s3streams.ReadStream.returns
# #describe on 'open' behavior
# on: (type, cb)->
# #describe on 'error' behavior
# on: (type, cb)->
# pipe:->
# #describe on 'data' behavior
# on: (type, cb)->
# cb([])
# #describe on 'end' behavior
# on: (type, cb)->
# cb()
# #describe on 'error' behavior
# on: sinon.stub()
2015-08-31 17:13:18 -04:00
# @MongoAWS.handleBulk = sinon.stub()
# @MongoAWS.unArchiveDocHistory @project_id, @doc_id, @callback
2015-08-31 17:13:18 -04:00
# it "should call handleBulk", ->
# @MongoAWS.handleBulk.called.should.equal true
2015-09-02 14:39:19 -04:00
# describe "handleBulk", ->
# beforeEach ->
# @bulkOps = [{
# _id: ObjectId()
# doc_id: ObjectId()
# project_id: ObjectId()
# }, {
# _id: ObjectId()
# doc_id: ObjectId()
# project_id: ObjectId()
# }, {
# _id: ObjectId()
# doc_id: ObjectId()
# project_id: ObjectId()
# }]
# @bulk =
# find: sinon.stub().returns
# upsert: sinon.stub().returns
# updateOne: sinon.stub()
# execute: sinon.stub().callsArgWith(0, null, {})
# @db.docHistory = {}
# @db.docHistory.initializeUnorderedBulkOp = sinon.stub().returns @bulk
# @MongoAWS.handleBulk @bulkOps, @bulkOps.length, @callback
2015-09-02 14:39:19 -04:00
# it "should call updateOne for each operation", ->
# @bulk.find.calledWith({_id:@bulkOps[0]._id}).should.equal true
# @bulk.find.calledWith({_id:@bulkOps[1]._id}).should.equal true
# @bulk.find.calledWith({_id:@bulkOps[2]._id}).should.equal true
2015-09-02 14:39:19 -04:00
# it "should call the callback", ->
# @callback.calledWith(null).should.equal true
2015-09-02 14:39:19 -04:00