You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
48 lines
1000 B
48 lines
1000 B
10 years ago
|
'use strict';
|
||
|
|
||
|
var _ = require('lodash');
|
||
|
var chai = require('chai');
|
||
|
var sinon = require('sinon');
|
||
|
var should = chai.should();
|
||
|
var Lock = require('../lib/lock');
|
||
|
|
||
|
describe('Lock', function() {
|
||
|
it('should lock tasks using the same token', function(done) {
|
||
|
var i = 0;
|
||
|
Lock.get('123', function(lock) {
|
||
|
i++;
|
||
|
setTimeout(function() {
|
||
|
lock.free();
|
||
|
}, 2);
|
||
|
Lock.get('123', function(lock) {
|
||
|
i++;
|
||
|
lock.free();
|
||
|
});
|
||
|
});
|
||
|
setTimeout(function() {
|
||
|
i.should.equal(1);
|
||
|
}, 1);
|
||
|
setTimeout(function() {
|
||
|
i.should.equal(2);
|
||
|
done();
|
||
|
}, 3);
|
||
|
});
|
||
|
it('should not lock tasks using different tokens', function(done) {
|
||
|
var i = 0;
|
||
|
Lock.get('123', function(lock) {
|
||
|
i++;
|
||
|
setTimeout(function() {
|
||
|
lock.free();
|
||
|
}, 2);
|
||
|
Lock.get('456', function(lock) {
|
||
|
i++;
|
||
|
lock.free();
|
||
|
});
|
||
|
});
|
||
|
setTimeout(function() {
|
||
|
i.should.equal(2);
|
||
|
done();
|
||
|
}, 1);
|
||
|
});
|
||
|
});
|