| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- /* eslint-disable
- handle-callback-err,
- no-unused-vars,
- */
- // TODO: This file was created by bulk-decaffeinate.
- // Fix any style issues and re-enable lint.
- /*
- * decaffeinate suggestions:
- * DS102: Remove unnecessary code created because of implicit returns
- * Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md
- */
- const sinon = require("sinon");
- const chai = require("chai");
- chai.should();
- const { expect } = chai;
- const mongojs = require("../../../app/js/mongojs");
- const { ObjectId } = mongojs;
- const Settings = require("settings-sharelatex");
- const LockManager = require("../../../app/js/LockManager");
- const rclient = require("redis").createClient(Settings.redis.history); // Only works locally for now
- const TrackChangesApp = require("./helpers/TrackChangesApp");
- describe("Locking document", function() {
- before(function(done){
- TrackChangesApp.ensureRunning(done);
- return null;
- });
-
- return describe("when the lock has expired in redis", function() {
- before(function(done) {
- LockManager.LOCK_TTL = 1; // second
- LockManager.runWithLock("doc123", releaseA => {
- // we create a lock A and allow it to expire in redis
- return setTimeout(() =>
- // now we create a new lock B and try to release A
- LockManager.runWithLock("doc123", releaseB => {
- return releaseA();
- } // try to release lock A to see if it wipes out lock B
- , (error) => {})
-
- // we never release lock B so nothing should happen here
- , 1500);
- } // enough time to wait until the lock has expired
- , error =>
- // we get here after trying to release lock A
- done()
- );
- return null;
- });
- return it("the new lock should not be removed by the expired locker", function(done) {
- LockManager.checkLock("doc123", (err, isFree) => {
- expect(isFree).to.equal(false);
- return done();
- });
- return null;
- });
- });
- });
|