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.
77 lines
1.5 KiB
77 lines
1.5 KiB
"use strict";
|
|
|
|
const tap = require("tap");
|
|
const createPool = require("../").createPool;
|
|
|
|
tap.test("acquireTimeout handles timed out acquire calls", function(t) {
|
|
const factory = {
|
|
create: function() {
|
|
return new Promise(function(resolve) {
|
|
setTimeout(function() {
|
|
resolve({});
|
|
}, 100);
|
|
});
|
|
},
|
|
destroy: function() {
|
|
return Promise.resolve();
|
|
}
|
|
};
|
|
const config = {
|
|
acquireTimeoutMillis: 20,
|
|
idleTimeoutMillis: 150,
|
|
log: false
|
|
};
|
|
|
|
const pool = createPool(factory, config);
|
|
|
|
pool
|
|
.acquire()
|
|
.then(function(resource) {
|
|
t.fail("wooops");
|
|
})
|
|
.catch(function(err) {
|
|
t.match(err, /ResourceRequest timed out/);
|
|
return pool.drain();
|
|
})
|
|
.then(function() {
|
|
return pool.clear();
|
|
})
|
|
.then(function() {})
|
|
.then(t.end)
|
|
.catch(t.error);
|
|
});
|
|
|
|
tap.test("acquireTimeout handles non timed out acquire calls", function(t) {
|
|
const myResource = {};
|
|
const factory = {
|
|
create: function() {
|
|
return new Promise(function(resolve) {
|
|
setTimeout(function() {
|
|
resolve(myResource);
|
|
}, 10);
|
|
});
|
|
},
|
|
destroy: function() {
|
|
return Promise.resolve();
|
|
}
|
|
};
|
|
|
|
const config = {
|
|
acquireTimeoutMillis: 400
|
|
};
|
|
|
|
const pool = createPool(factory, config);
|
|
|
|
pool
|
|
.acquire()
|
|
.then(function(resource) {
|
|
t.equal(resource, myResource);
|
|
pool.release(resource);
|
|
return pool.drain();
|
|
})
|
|
.then(function() {
|
|
return pool.clear();
|
|
})
|
|
.then(t.end)
|
|
.catch(t.error);
|
|
});
|
|
|