/* * decaffeinate suggestions: * DS102: Remove unnecessary code created because of implicit returns * DS206: Consider reworking classes to avoid initClass * Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md */ require('coffee-script'); const sinon = require('sinon'); const assert = require('assert'); const path = require('path'); const modulePath = path.join(__dirname, '../../../../app/js/LockManager.js'); const project_id = 1234; const doc_id = 5678; const blockingKey = `Blocking:${doc_id}`; const SandboxedModule = require('sandboxed-module'); describe('LockManager - checking the lock', function(){ let Profiler; const existsStub = sinon.stub(); const mocks = { "logger-sharelatex": { log() {} }, "redis-sharelatex": { createClient(){ return { auth() {}, exists: existsStub }; } }, "./Metrics": {inc() {}}, "./Profiler": (Profiler = (function() { Profiler = class Profiler { static initClass() { this.prototype.log = sinon.stub().returns({ end: sinon.stub() }); this.prototype.end = sinon.stub(); } }; Profiler.initClass(); return Profiler; })()) }; const LockManager = SandboxedModule.require(modulePath, {requires: mocks}); it('should return true if the key does not exists', function(done){ existsStub.yields(null, "0"); return LockManager.checkLock(doc_id, function(err, free){ free.should.equal(true); return done(); }); }); return it('should return false if the key does exists', function(done){ existsStub.yields(null, "1"); return LockManager.checkLock(doc_id, function(err, free){ free.should.equal(false); return done(); }); }); });