removeDocFromMemoryTests.coffee 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. require('coffee-script')
  2. _ = require("underscore")
  3. assert = require('assert')
  4. sinon = require('sinon')
  5. path = require('path')
  6. modulePath = path.join __dirname, '../../../../app/js/RedisManager.js'
  7. keys = require(path.join __dirname, '../../../../app/js/RedisKeyBuilder.js')
  8. SandboxedModule = require('sandboxed-module')
  9. describe 'RedisManager.removeDocFromMemory', ()->
  10. project_id = "12345"
  11. doc_id1 = "docid1"
  12. doc_id2 = "docid2"
  13. doc_id3 = "docid3"
  14. redisMemory = undefined
  15. redisManager = undefined
  16. self = @
  17. beforeEach (done)->
  18. redisMemory = {}
  19. rclient =
  20. auth:->
  21. get:->
  22. set:(key, value)->
  23. redisMemory[key] = value
  24. sadd:(key, value, cb)->
  25. if !redisMemory[key]?
  26. redisMemory[key] = []
  27. redisMemory[key].push value
  28. cb()
  29. del : (key)->
  30. delete redisMemory[key]
  31. srem : (key, member, cb)->
  32. index = redisMemory[key].indexOf(member)
  33. redisMemory[key].splice(index, 1)
  34. cb()
  35. exec:(callback)->
  36. callback(null, [])
  37. rclient.multi = () -> rclient
  38. mocks =
  39. "./ZipManager": {}
  40. "logger-sharelatex":
  41. error:->
  42. log:->
  43. "redis-sharelatex":
  44. createClient : -> rclient
  45. redisManager = SandboxedModule.require(modulePath, requires: mocks)
  46. redisManager.putDocInMemory project_id, doc_id1, 0, ["line"], ->
  47. redisManager.putDocInMemory project_id, doc_id2, 0, ["ledf"], ->
  48. redisManager.putDocInMemory project_id, doc_id3, 0, ["ledf"], ->
  49. done()
  50. it 'should remove doc lines from memory', (done)->
  51. keyExists = false
  52. redisManager.removeDocFromMemory project_id, doc_id1, ()->
  53. assert.equal redisMemory[keys.docLines(doc_id:doc_id1)], undefined
  54. keys = _.keys(redisMemory)
  55. containsKey(keys, doc_id1)
  56. keys.forEach (sets)->
  57. containsKey sets, doc_id1
  58. _.each redisMemory, (value)->
  59. if value.indexOf(doc_id1) != -1
  60. assert.equal false, "#{doc_id1} found in value #{value}"
  61. done()
  62. containsKey = (haystack, key)->
  63. if haystack.forEach?
  64. haystack.forEach (area)->
  65. if area.indexOf(key) != -1
  66. assert.equal false, "#{key} found in haystack in #{area}"