js: add configuration option on startup
-- * src/index.js: Added an optional configuration object for the startup. * configuration: timeout - the initial check for a connection ran into timeouts on slower testing machines. 500ms for initial startup is not sufficient everywhere. The default timeout was raised to 1000ms, and as an option this timeout can be increased even further. * BrowsertestExtension: Set the initial connection timeouts to 2 seconds, to be able to test on slower machines.
This commit is contained in:
parent
362caaf02f
commit
7f14958606
@ -32,7 +32,7 @@ describe('Key importing', function () {
|
||||
|
||||
let context = null;
|
||||
before(function (done){
|
||||
const prm = Gpgmejs.init();
|
||||
const prm = Gpgmejs.init({ timeout: 2000 });
|
||||
prm.then(function (gpgmejs){
|
||||
context = gpgmejs;
|
||||
context.Keyring.getKeys({ pattern: fpr }).then(
|
||||
|
@ -27,7 +27,7 @@
|
||||
describe('Key information', function () {
|
||||
let context = null;
|
||||
before(function (done){
|
||||
const prm = Gpgmejs.init();
|
||||
const prm = Gpgmejs.init({ timeout: 2000 });
|
||||
prm.then(function (gpgmejs){
|
||||
context = gpgmejs;
|
||||
done();
|
||||
|
@ -29,7 +29,7 @@ describe('Decryption', function () {
|
||||
const good_fpr = inputvalues.encrypt.good.fingerprint;
|
||||
|
||||
before(function (done){
|
||||
const prm = Gpgmejs.init();
|
||||
const prm = Gpgmejs.init({ timeout:2000 });
|
||||
prm.then(function (gpgmejs){
|
||||
context = gpgmejs;
|
||||
done();
|
||||
|
@ -29,7 +29,7 @@ describe('Encryption and Decryption', function (){
|
||||
let good_fpr = inputvalues.encrypt.good.fingerprint;
|
||||
|
||||
before(function (done){
|
||||
const prm = Gpgmejs.init();
|
||||
const prm = Gpgmejs.init({ timeout: 2000 });
|
||||
prm.then(function (gpgmejs){
|
||||
context = gpgmejs;
|
||||
done();
|
||||
|
@ -28,7 +28,7 @@ describe('Encryption', function () {
|
||||
let context = null;
|
||||
const good_fpr = inputvalues.encrypt.good.fingerprint;
|
||||
before(function (done){
|
||||
const prm = Gpgmejs.init();
|
||||
const prm = Gpgmejs.init({ timeout: 2000 });
|
||||
prm.then(function (gpgmejs){
|
||||
context = gpgmejs;
|
||||
done();
|
||||
|
@ -27,7 +27,7 @@ describe('Long running Encryption/Decryption', function () {
|
||||
let context = null;
|
||||
const good_fpr = inputvalues.encrypt.good.fingerprint;
|
||||
before(function (done){
|
||||
const prm = Gpgmejs.init();
|
||||
const prm = Gpgmejs.init({ timeout: 2000 });
|
||||
prm.then(function (gpgmejs){
|
||||
context = gpgmejs;
|
||||
done();
|
||||
|
@ -29,7 +29,7 @@ describe('Signing', function () {
|
||||
const good_fpr = inputvalues.encrypt.good.fingerprint;
|
||||
|
||||
before(function (done){
|
||||
const prm = Gpgmejs.init();
|
||||
const prm = Gpgmejs.init({ timeout: 2000 });
|
||||
prm.then(function (gpgmejs){
|
||||
context = gpgmejs;
|
||||
done();
|
||||
|
@ -25,7 +25,7 @@
|
||||
|
||||
describe('GPGME context', function (){
|
||||
it('Starting a GpgME instance', function (done){
|
||||
let prm = Gpgmejs.init();
|
||||
let prm = Gpgmejs.init({ timeout: 2000 });
|
||||
const input = inputvalues.someInputParameter;
|
||||
prm.then(
|
||||
function (context){
|
||||
|
@ -28,7 +28,7 @@
|
||||
describe('Verifying data', function () {
|
||||
let context = null;
|
||||
before(function (done){
|
||||
const prm = Gpgmejs.init();
|
||||
const prm = Gpgmejs.init({ timeout: 2000 });
|
||||
prm.then(function (gpgmejs){
|
||||
context = gpgmejs;
|
||||
done();
|
||||
|
@ -74,11 +74,15 @@ export class Connection{
|
||||
* Retrieves the information about the backend.
|
||||
* @param {Boolean} details (optional) If set to false, the promise will
|
||||
* just return if a connection was successful.
|
||||
* @param {Number} timeout (optional)
|
||||
* @returns {Promise<backEndDetails>|Promise<Boolean>} Details from the
|
||||
* backend
|
||||
* @async
|
||||
*/
|
||||
checkConnection (details = true){
|
||||
checkConnection (details = true, timeout = 1000){
|
||||
if (typeof timeout !== 'number' && timeout <= 0) {
|
||||
timeout = 1000;
|
||||
}
|
||||
const msg = createMessage('version');
|
||||
if (details === true) {
|
||||
return this.post(msg);
|
||||
@ -90,7 +94,7 @@ export class Connection{
|
||||
new Promise(function (resolve, reject){
|
||||
setTimeout(function (){
|
||||
reject(gpgme_error('CONN_TIMEOUT'));
|
||||
}, 500);
|
||||
}, timeout);
|
||||
})
|
||||
]).then(function (){ // success
|
||||
resolve(true);
|
||||
|
@ -31,13 +31,17 @@ import { Connection } from './Connection';
|
||||
* connection once, and then offers the available functions as method of the
|
||||
* response object.
|
||||
* An unsuccessful attempt will reject as a GPGME_Error.
|
||||
* @param {Object} config (optional) configuration options
|
||||
* @param {Number} config.timeout set the timeout for the initial connection
|
||||
* check. On some machines and operating systems a default timeout of 500 ms is
|
||||
* too low, so a higher number might be attempted.
|
||||
* @returns {Promise<GpgME>}
|
||||
* @async
|
||||
*/
|
||||
function init (){
|
||||
function init ({ timeout = 500 } = {}){
|
||||
return new Promise(function (resolve, reject){
|
||||
const connection = new Connection;
|
||||
connection.checkConnection(false).then(
|
||||
connection.checkConnection(false, timeout).then(
|
||||
function (result){
|
||||
if (result === true) {
|
||||
resolve(new GpgME());
|
||||
|
@ -34,13 +34,15 @@ import { GPGME_Message, createMessage } from './src/Message';
|
||||
mocha.setup('bdd');
|
||||
const expect = chai.expect;
|
||||
chai.config.includeStack = true;
|
||||
const connectionTimeout = 2000;
|
||||
|
||||
function unittests (){
|
||||
describe('Connection testing', function (){
|
||||
|
||||
it('Connecting', function (done) {
|
||||
let conn0 = new Connection;
|
||||
conn0.checkConnection().then(function (answer) {
|
||||
conn0.checkConnection(true, connectionTimeout).then(
|
||||
function (answer) {
|
||||
expect(answer).to.not.be.empty;
|
||||
expect(answer.gpgme).to.not.be.undefined;
|
||||
expect(answer.gpgme).to.be.a('string');
|
||||
@ -54,10 +56,12 @@ function unittests (){
|
||||
|
||||
it('Disconnecting', function (done) {
|
||||
let conn0 = new Connection;
|
||||
conn0.checkConnection(false).then(function (answer) {
|
||||
conn0.checkConnection(false, connectionTimeout).then(
|
||||
function (answer) {
|
||||
expect(answer).to.be.true;
|
||||
conn0.disconnect();
|
||||
conn0.checkConnection(false).then(function (result) {
|
||||
conn0.checkConnection(false, connectionTimeout).then(
|
||||
function (result) {
|
||||
expect(result).to.be.false;
|
||||
done();
|
||||
});
|
||||
|
Loading…
Reference in New Issue
Block a user