putDocInMemoryTests.coffee 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. require('coffee-script')
  2. assert = require('assert')
  3. path = require('path')
  4. modulePath = path.join __dirname, '../../../../app/js/RedisManager.js'
  5. keys = require(path.join __dirname, '../../../../app/js/RedisKeyBuilder.js')
  6. project_id = 1234
  7. doc_id = 5678
  8. SandboxedModule = require('sandboxed-module')
  9. describe 'RedisManager.putDocInMemory', ()->
  10. lines = ["this is one line", "and another line"]
  11. version = 42
  12. potentialSets = {}
  13. potentialSets[keys.docLines(doc_id:doc_id)] = lines
  14. potentialSets[keys.projectKey(doc_id:doc_id)] = project_id
  15. potentialSets[keys.docVersion(doc_id:doc_id)] = version
  16. potentialSAdds = {}
  17. potentialSAdds[keys.docsInProject(project_id:project_id)] = doc_id
  18. rclient =
  19. auth:->
  20. set:(key, value)->
  21. result = potentialSets[key]
  22. delete potentialSets[key]
  23. if key == keys.docLines(doc_id:doc_id)
  24. value = JSON.parse(value)
  25. assert.deepEqual result, value
  26. incr:()->
  27. sadd:(key, value, cb)->
  28. result = potentialSAdds[key]
  29. delete potentialSAdds[key]
  30. assert.equal result, value
  31. cb()
  32. del: (key) ->
  33. result = potentialDels[key]
  34. delete potentialDels[key]
  35. assert.equal result, true
  36. exec:(callback)->
  37. callback()
  38. rclient.multi = () -> rclient
  39. mocks =
  40. "./ZipManager": {}
  41. "logger-sharelatex": log:->
  42. "redis-sharelatex":
  43. createClient : () -> rclient
  44. redisManager = SandboxedModule.require(modulePath, requires: mocks)
  45. it 'should put a all data into memory', (done)->
  46. redisManager.putDocInMemory project_id, doc_id, lines, version, ()->
  47. assert.deepEqual potentialSets, {}
  48. assert.deepEqual potentialSAdds, {}
  49. done()