bitcore-wallet-service/test/locallock.js

51 lines
1.1 KiB
JavaScript
Raw Normal View History

2015-04-03 08:23:55 -07:00
'use strict';
var _ = require('lodash');
var chai = require('chai');
var sinon = require('sinon');
var should = chai.should();
2015-04-07 13:02:08 -07:00
var Lock = require('../lib/locallock');
2015-04-03 08:23:55 -07:00
2015-04-07 13:02:08 -07:00
describe('Local lock', function() {
2015-04-03 08:23:55 -07:00
it('should lock tasks using the same token', function(done) {
2015-04-03 11:47:31 -07:00
var a = false,
b = false;
2015-04-03 08:23:55 -07:00
Lock.get('123', function(lock) {
2015-04-03 11:47:31 -07:00
a = true;
2015-04-03 08:23:55 -07:00
setTimeout(function() {
lock.free();
2015-04-03 11:47:31 -07:00
}, 5);
2015-04-03 08:23:55 -07:00
Lock.get('123', function(lock) {
2015-04-03 11:47:31 -07:00
b = true;
2015-04-03 08:23:55 -07:00
lock.free();
});
});
setTimeout(function() {
2015-04-03 11:47:31 -07:00
a.should.equal(true);
b.should.equal(false);
2015-04-03 08:23:55 -07:00
}, 1);
setTimeout(function() {
2015-04-03 11:47:31 -07:00
a.should.equal(true);
b.should.equal(true);
2015-04-03 08:23:55 -07:00
done();
2015-04-03 11:47:31 -07:00
}, 8);
2015-04-03 08:23:55 -07:00
});
it('should not lock tasks using different tokens', function(done) {
var i = 0;
Lock.get('123', function(lock) {
i++;
setTimeout(function() {
lock.free();
2015-04-03 11:47:31 -07:00
}, 5);
2015-04-03 08:23:55 -07:00
Lock.get('456', function(lock) {
i++;
lock.free();
});
});
setTimeout(function() {
i.should.equal(2);
done();
}, 1);
});
});