RemovingSingleDocFromMemory.coffee 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  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 'removing single doc from memory', ()->
  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. mocks =
  20. "logger-sharelatex":
  21. error:->
  22. log:->
  23. "redis-sharelatex":
  24. createClient : ->
  25. auth:->
  26. multi: ->
  27. get:->
  28. set:(key, value)->
  29. redisMemory[key] = value
  30. sadd:(key, value)->
  31. if !redisMemory[key]?
  32. redisMemory[key] = []
  33. redisMemory[key].push value
  34. del : (key)->
  35. delete redisMemory[key]
  36. srem : (key, member)->
  37. index = redisMemory[key].indexOf(member)
  38. redisMemory[key].splice(index, 1)
  39. exec:(callback)->
  40. callback(null, [])
  41. redisManager = SandboxedModule.require(modulePath, requires: mocks)
  42. redisManager.putDocInMemory project_id, doc_id1, 0, ["line"], ->
  43. redisManager.putDocInMemory project_id, doc_id2, 0, ["ledf"], ->
  44. redisManager.putDocInMemory project_id, doc_id3, 0, ["ledf"], ->
  45. done()
  46. it 'should remove doc lines from memory', (done)->
  47. keyExists = false
  48. redisManager.removeDocFromMemory project_id, doc_id1, ()->
  49. assert.equal redisMemory[keys.docLines(doc_id:doc_id1)], undefined
  50. keys = _.keys(redisMemory)
  51. containsKey(keys, doc_id1)
  52. keys.forEach (sets)->
  53. containsKey sets, doc_id1
  54. _.each redisMemory, (value)->
  55. if value.indexOf(doc_id1) != -1
  56. assert.equal false, "#{doc_id1} found in value #{value}"
  57. done()
  58. containsKey = (haystack, key)->
  59. if haystack.forEach?
  60. haystack.forEach (area)->
  61. if area.indexOf(key) != -1
  62. assert.equal false, "#{key} found in haystack in #{area}"