unit test for lock

This commit is contained in:
Ivan Socolsky 2015-04-03 12:23:55 -03:00
parent dd803af36e
commit d1618d8463
1 changed files with 47 additions and 0 deletions

47
test/lock.js Normal file
View File

@ -0,0 +1,47 @@
'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);
});
});