GettingListOfPendingUpdates.coffee 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. assert = require('assert')
  2. should = require('chai').should()
  3. path = require('path')
  4. modulePath = path.join __dirname, '../../../app/js/RedisManager.js'
  5. _ = require('underscore')
  6. SandboxedModule = require('sandboxed-module')
  7. keys = require(path.join __dirname, '../../../app/js/RedisKeyBuilder.js')
  8. describe 'getting entire list of pending updates', ()->
  9. doc_id = 123
  10. redisMemory = {}
  11. correctUpdates = [{"update1"}, {"update2"}, {"update3"}]
  12. jsonCorrectUpdates = _.map correctUpdates, (d)-> JSON.stringify d
  13. redisMemory[keys.pendingUpdates(doc_id:doc_id)] = jsonCorrectUpdates
  14. redisMemory[keys.pendingUpdates(doc_id:"notThis")] = JSON.stringify([{"updatex"}, {"updatez"}])
  15. redisReturn = []
  16. mocks =
  17. "redis-sharelatex":
  18. createClient: ()->
  19. auth:->
  20. multi: ()->
  21. lrange:(key, start, end)->
  22. key.should.equal(keys.pendingUpdates(doc_id:doc_id))
  23. start.should.equal(0)
  24. end.should.equal(-1)
  25. redisReturn.push(redisMemory[key])
  26. del : (key)->
  27. key.should.equal(keys.pendingUpdates(doc_id:doc_id))
  28. redisReturn.push(1)
  29. exec: (callback)->
  30. callback(null, redisReturn)
  31. redisManager = SandboxedModule.require(modulePath, requires: mocks)
  32. it 'should have 3 elements in array', (done)->
  33. redisManager.getPendingUpdatesForDoc doc_id, (err, listOfUpdates)->
  34. listOfUpdates.length.should.equal(3)
  35. done()