testcafe
Version:
Automated browser testing for the modern web development stack.
44 lines • 6.83 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const qrcode_terminal_1 = __importDefault(require("qrcode-terminal"));
const chalk_1 = __importDefault(require("chalk"));
const log_1 = __importDefault(require("./log"));
const promisify_event_1 = __importDefault(require("promisify-event"));
const dedent_1 = __importDefault(require("dedent"));
async function default_1(testCafe, remoteCount, showQRCode) {
const connectionPromises = [];
if (remoteCount) {
log_1.default.hideSpinner();
const description = (0, dedent_1.default)(`
Connecting ${remoteCount} remote browser(s)...
Navigate to the following URL from each remote browser.
`);
log_1.default.write(description);
if (showQRCode)
log_1.default.write('You can either enter the URL or scan the QR-code.');
// NOTE: 'remote' browser connection cannot be in the 'native automation' mode.
testCafe.configuration.mergeOptions({ disableNativeAutomation: true });
await testCafe.initializeBrowserConnectionGateway();
const connectionUrl = testCafe.browserConnectionGateway.connectUrl;
log_1.default.write(`Connect URL: ${chalk_1.default.underline.blue(connectionUrl)}`);
if (showQRCode)
qrcode_terminal_1.default.generate(connectionUrl);
for (let i = 0; i < remoteCount; i++) {
connectionPromises.push(testCafe
.createBrowserConnection()
.then((bc) => (0, promisify_event_1.default)(bc, 'ready').then(() => bc))
.then((bc) => {
log_1.default.write(`${chalk_1.default.green('CONNECTED')} ${bc.userAgent}`);
return bc;
}));
}
log_1.default.showSpinner();
}
return await Promise.all(connectionPromises);
}
exports.default = default_1;
module.exports = exports.default;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVtb3Rlcy13aXphcmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY2xpL3JlbW90ZXMtd2l6YXJkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsc0VBQXFDO0FBQ3JDLGtEQUEwQjtBQUMxQixnREFBd0I7QUFDeEIsc0VBQTZDO0FBQzdDLG9EQUE0QjtBQWFiLEtBQUssb0JBQVcsUUFBa0IsRUFBRSxXQUFtQixFQUFFLFVBQW1CO0lBQ3ZGLE1BQU0sa0JBQWtCLEdBQUcsRUFBRSxDQUFDO0lBRTlCLElBQUksV0FBVyxFQUFFO1FBQ2IsYUFBRyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBRWxCLE1BQU0sV0FBVyxHQUFHLElBQUEsZ0JBQU0sRUFBQzt5QkFDVixXQUFXOztTQUUzQixDQUFDLENBQUM7UUFFSCxhQUFHLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRXZCLElBQUksVUFBVTtZQUNWLGFBQUcsQ0FBQyxLQUFLLENBQUMsbURBQW1ELENBQUMsQ0FBQztRQUVuRSwrRUFBK0U7UUFDL0UsUUFBUSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsRUFBRSx1QkFBdUIsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBRXZFLE1BQU0sUUFBUSxDQUFDLGtDQUFrQyxFQUFFLENBQUM7UUFFcEQsTUFBTSxhQUFhLEdBQUcsUUFBUSxDQUFDLHdCQUF3QixDQUFDLFVBQVUsQ0FBQztRQUVuRSxhQUFHLENBQUMsS0FBSyxDQUFDLGdCQUFnQixlQUFLLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDLENBQUM7UUFFakUsSUFBSSxVQUFVO1lBQ1YseUJBQU0sQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUM7UUFFbkMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFdBQVcsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUNsQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsUUFBUTtpQkFDM0IsdUJBQXVCLEVBQUU7aUJBQ3pCLElBQUksQ0FBQyxDQUFDLEVBQXFCLEVBQUUsRUFBRSxDQUFDLElBQUEseUJBQWMsRUFBQyxFQUFFLEVBQUUsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO2lCQUMzRSxJQUFJLENBQUMsQ0FBQyxFQUFxQixFQUFFLEVBQUU7Z0JBQzVCLGFBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxlQUFLLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDO2dCQUV6RCxPQUFPLEVBQUUsQ0FBQztZQUNkLENBQUMsQ0FBQyxDQUNMLENBQUM7U0FDTDtRQUVELGFBQUcsQ0FBQyxXQUFXLEVBQUUsQ0FBQztLQUNyQjtJQUVELE9BQU8sTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLGtCQUFrQixDQUFDLENBQUM7QUFDakQsQ0FBQztBQTVDRCw0QkE0Q0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgcXJjb2RlIGZyb20gJ3FyY29kZS10ZXJtaW5hbCc7XG5pbXBvcnQgY2hhbGsgZnJvbSAnY2hhbGsnO1xuaW1wb3J0IGxvZyBmcm9tICcuL2xvZyc7XG5pbXBvcnQgcHJvbWlzaWZ5RXZlbnQgZnJvbSAncHJvbWlzaWZ5LWV2ZW50JztcbmltcG9ydCBkZWRlbnQgZnJvbSAnZGVkZW50JztcblxuaW1wb3J0IEJyb3dzZXJDb25uZWN0aW9uIGZyb20gJy4uL2Jyb3dzZXIvY29ubmVjdGlvbic7XG5pbXBvcnQgQnJvd3NlckNvbm5lY3Rpb25HYXRld2F5IGZyb20gJy4uL2Jyb3dzZXIvY29ubmVjdGlvbi9nYXRld2F5JztcbmltcG9ydCBUZXN0Q2FmZUNvbmZpZ3VyYXRpb24gZnJvbSAnLi4vY29uZmlndXJhdGlvbi90ZXN0Y2FmZS1jb25maWd1cmF0aW9uJztcblxuaW50ZXJmYWNlIFRlc3RDYWZlIHtcbiAgICBicm93c2VyQ29ubmVjdGlvbkdhdGV3YXk6IEJyb3dzZXJDb25uZWN0aW9uR2F0ZXdheTtcbiAgICBjcmVhdGVCcm93c2VyQ29ubmVjdGlvbigpOiBQcm9taXNlPEJyb3dzZXJDb25uZWN0aW9uPjtcbiAgICBpbml0aWFsaXplQnJvd3NlckNvbm5lY3Rpb25HYXRld2F5KCk6IFByb21pc2U8dm9pZD47XG4gICAgY29uZmlndXJhdGlvbjogVGVzdENhZmVDb25maWd1cmF0aW9uO1xufVxuXG5leHBvcnQgZGVmYXVsdCBhc3luYyBmdW5jdGlvbiAodGVzdENhZmU6IFRlc3RDYWZlLCByZW1vdGVDb3VudDogbnVtYmVyLCBzaG93UVJDb2RlOiBib29sZWFuKTogUHJvbWlzZTxCcm93c2VyQ29ubmVjdGlvbltdPiB7XG4gICAgY29uc3QgY29ubmVjdGlvblByb21pc2VzID0gW107XG5cbiAgICBpZiAocmVtb3RlQ291bnQpIHtcbiAgICAgICAgbG9nLmhpZGVTcGlubmVyKCk7XG5cbiAgICAgICAgY29uc3QgZGVzY3JpcHRpb24gPSBkZWRlbnQoYFxuICAgICAgICAgICAgQ29ubmVjdGluZyAke3JlbW90ZUNvdW50fSByZW1vdGUgYnJvd3NlcihzKS4uLlxuICAgICAgICAgICAgTmF2aWdhdGUgdG8gdGhlIGZvbGxvd2luZyBVUkwgZnJvbSBlYWNoIHJlbW90ZSBicm93c2VyLlxuICAgICAgICBgKTtcblxuICAgICAgICBsb2cud3JpdGUoZGVzY3JpcHRpb24pO1xuXG4gICAgICAgIGlmIChzaG93UVJDb2RlKVxuICAgICAgICAgICAgbG9nLndyaXRlKCdZb3UgY2FuIGVpdGhlciBlbnRlciB0aGUgVVJMIG9yIHNjYW4gdGhlIFFSLWNvZGUuJyk7XG5cbiAgICAgICAgLy8gTk9URTogJ3JlbW90ZScgYnJvd3NlciBjb25uZWN0aW9uIGNhbm5vdCBiZSBpbiB0aGUgJ25hdGl2ZSBhdXRvbWF0aW9uJyBtb2RlLlxuICAgICAgICB0ZXN0Q2FmZS5jb25maWd1cmF0aW9uLm1lcmdlT3B0aW9ucyh7IGRpc2FibGVOYXRpdmVBdXRvbWF0aW9uOiB0cnVlIH0pO1xuXG4gICAgICAgIGF3YWl0IHRlc3RDYWZlLmluaXRpYWxpemVCcm93c2VyQ29ubmVjdGlvbkdhdGV3YXkoKTtcblxuICAgICAgICBjb25zdCBjb25uZWN0aW9uVXJsID0gdGVzdENhZmUuYnJvd3NlckNvbm5lY3Rpb25HYXRld2F5LmNvbm5lY3RVcmw7XG5cbiAgICAgICAgbG9nLndyaXRlKGBDb25uZWN0IFVSTDogJHtjaGFsay51bmRlcmxpbmUuYmx1ZShjb25uZWN0aW9uVXJsKX1gKTtcblxuICAgICAgICBpZiAoc2hvd1FSQ29kZSlcbiAgICAgICAgICAgIHFyY29kZS5nZW5lcmF0ZShjb25uZWN0aW9uVXJsKTtcblxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHJlbW90ZUNvdW50OyBpKyspIHtcbiAgICAgICAgICAgIGNvbm5lY3Rpb25Qcm9taXNlcy5wdXNoKHRlc3RDYWZlXG4gICAgICAgICAgICAgICAgLmNyZWF0ZUJyb3dzZXJDb25uZWN0aW9uKClcbiAgICAgICAgICAgICAgICAudGhlbigoYmM6IEJyb3dzZXJDb25uZWN0aW9uKSA9PiBwcm9taXNpZnlFdmVudChiYywgJ3JlYWR5JykudGhlbigoKSA9PiBiYykpXG4gICAgICAgICAgICAgICAgLnRoZW4oKGJjOiBCcm93c2VyQ29ubmVjdGlvbikgPT4ge1xuICAgICAgICAgICAgICAgICAgICBsb2cud3JpdGUoYCR7Y2hhbGsuZ3JlZW4oJ0NPTk5FQ1RFRCcpfSAke2JjLnVzZXJBZ2VudH1gKTtcblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYmM7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICBsb2cuc2hvd1NwaW5uZXIoKTtcbiAgICB9XG5cbiAgICByZXR1cm4gYXdhaXQgUHJvbWlzZS5hbGwoY29ubmVjdGlvblByb21pc2VzKTtcbn1cbiJdfQ==