UNPKG

@cbt/karma-cbt-launcher

Version:

Custom launcher for Karma that allows testing remotely through CrossBrowserTesting.

57 lines (51 loc) 1.55 kB
/* This code was originally taken and modified from Actano/Marcus Mennemeier's karma-cbt-launcher. The original code can be found at http://github.com/actano/karma-cbt-launcher */ const consoleLogger = require('./console-logger'); const cbt = require('cbt_tunnels'); let log = consoleLogger('cbt-tunnel'); let tunnelProm; let isRunning = false; module.exports = { setLogger: (logger) => log = logger.create('cbt-tunnel'), stop: () => { if(!isRunning) cbt.stop(); isRunning = false; }, start:() => new Promise(async(resolve, reject) => { let cbtConfig = { username: module.exports.username, authkey: module.exports.authkey, quiet: false }; if(isRunning) { //tunnel is already up resolve(); } else if(tunnelProm) { // tunnel already started. wait until done try { resolve(await tunnelProm); } catch(err) { reject(err); } } else { tunnelProm = new Promise((resolve, reject) => { cbt.start(cbtConfig, err => { if(err) { reject(err); } else { isRunning = true; resolve(); } }); }); try { resolve(await tunnelProm); } catch(err) { reject(err); } } }) };