overleaf/services/document-updater/test/unit/coffee/RedisManager/putDocInMemoryTests.coffee

57 lines
1.6 KiB
CoffeeScript
Raw Normal View History

2014-02-12 05:40:42 -05:00
require('coffee-script')
assert = require('assert')
path = require('path')
modulePath = path.join __dirname, '../../../../app/js/RedisManager.js'
keys = require(path.join __dirname, '../../../../app/js/RedisKeyBuilder.js')
2014-02-12 05:40:42 -05:00
project_id = 1234
doc_id = 5678
SandboxedModule = require('sandboxed-module')
2014-02-12 05:40:42 -05:00
describe 'RedisManager.putDocInMemory', ()->
2014-02-12 05:40:42 -05:00
lines = ["this is one line", "and another line"]
version = 42
potentialSets = {}
potentialSets[keys.docLines(doc_id:doc_id)] = lines
potentialSets[keys.projectKey(doc_id:doc_id)] = project_id
potentialSets[keys.docVersion(doc_id:doc_id)] = version
potentialSAdds = {}
potentialSAdds[keys.docsInProject(project_id:project_id)] = doc_id
rclient =
auth:->
set:(key, value)->
result = potentialSets[key]
delete potentialSets[key]
if key == keys.docLines(doc_id:doc_id)
value = JSON.parse(value)
assert.deepEqual result, value
incr:()->
sadd:(key, value, cb)->
result = potentialSAdds[key]
delete potentialSAdds[key]
assert.equal result, value
cb()
del: (key) ->
result = potentialDels[key]
delete potentialDels[key]
assert.equal result, true
exec:(callback)->
callback()
rclient.multi = () -> rclient
2014-02-12 05:40:42 -05:00
mocks =
"./ZipManager": {}
2014-02-12 05:40:42 -05:00
"logger-sharelatex": log:->
2014-10-07 07:08:36 -04:00
"redis-sharelatex":
createClient : () -> rclient
2014-02-12 05:40:42 -05:00
redisManager = SandboxedModule.require(modulePath, requires: mocks)
2014-02-12 05:40:42 -05:00
it 'should put a all data into memory', (done)->
redisManager.putDocInMemory project_id, doc_id, lines, version, ()->
assert.deepEqual potentialSets, {}
assert.deepEqual potentialSAdds, {}
done()