UNPKG

@browserstack/testcafe

Version:

Automated browser testing for the modern web development stack.

86 lines 9.74 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const indent_string_1 = __importDefault(require("indent-string")); const DEFAULT_CONCATENATED_VALUES = { SEPARATOR: ', ', QUOTE_CHAR: '"' }; function rtrim(str) { return str.replace(/\s+$/, ''); } function removeTTYColors(str) { return str.replace(/\033\[[0-9;]*m/g, ''); } exports.removeTTYColors = removeTTYColors; function wordWrap(str, indent, width) { let curStr = ''; let wrappedMsg = ''; if (removeTTYColors(str).length <= width - indent) return indent_string_1.default(str, ' ', indent); str = str.replace(/(\r\n)/gm, '\n') .split(/(\S+[ \t]+)|(\S+(?:\n))|(\n)/m) //NOTE: cut empty elements .filter(elm => !!elm); str.forEach(word => { const newStr = curStr + word; if (removeTTYColors(newStr).length > width - indent) { wrappedMsg += `${rtrim(curStr)}\n`; curStr = word; } else { if (curStr[curStr.length - 1] === '\n') { wrappedMsg += `${rtrim(curStr)}\n`; curStr = ''; } curStr += word; } }); return indent_string_1.default(wrappedMsg + curStr, ' ', indent); } exports.wordWrap = wordWrap; function splitQuotedText(str, splitChar, quotes = '"\'') { let currentPart = ''; const parts = []; let quoteChar = null; for (let i = 0; i < str.length; i++) { const currentChar = str[i]; if (currentChar === splitChar) { if (quoteChar) currentPart += currentChar; else { parts.push(currentPart); currentPart = ''; } } else if (quotes.indexOf(currentChar) > -1) { if (quoteChar === currentChar) quoteChar = null; else if (!quoteChar) quoteChar = currentChar; else currentPart += currentChar; } else currentPart += currentChar; } if (currentPart) parts.push(currentPart); return parts; } exports.splitQuotedText = splitQuotedText; function getPluralSuffix(array) { return array.length > 1 ? 's' : ''; } exports.getPluralSuffix = getPluralSuffix; function getConcatenatedValuesString(array, separator = DEFAULT_CONCATENATED_VALUES.SEPARATOR, quoteChar = DEFAULT_CONCATENATED_VALUES.QUOTE_CHAR) { return array.map(item => `${quoteChar}${item}${quoteChar}`).join(separator); } exports.getConcatenatedValuesString = getConcatenatedValuesString; function getToBeInPastTense(array) { return array.length > 1 ? 'were' : 'was'; } exports.getToBeInPastTense = getToBeInPastTense; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyaW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL3N0cmluZy5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLGtFQUF5QztBQUV6QyxNQUFNLDJCQUEyQixHQUFHO0lBQ2hDLFNBQVMsRUFBRyxJQUFJO0lBQ2hCLFVBQVUsRUFBRSxHQUFHO0NBQ2xCLENBQUM7QUFFRixTQUFTLEtBQUssQ0FBRSxHQUFHO0lBQ2YsT0FBTyxHQUFHLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQztBQUNuQyxDQUFDO0FBRUQsU0FBZ0IsZUFBZSxDQUFFLEdBQUc7SUFDaEMsT0FBTyxHQUFHLENBQUMsT0FBTyxDQUFDLGlCQUFpQixFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQzlDLENBQUM7QUFGRCwwQ0FFQztBQUVELFNBQWdCLFFBQVEsQ0FBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLEtBQUs7SUFDeEMsSUFBSSxNQUFNLEdBQU8sRUFBRSxDQUFDO0lBQ3BCLElBQUksVUFBVSxHQUFHLEVBQUUsQ0FBQztJQUVwQixJQUFJLGVBQWUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLElBQUksS0FBSyxHQUFHLE1BQU07UUFDN0MsT0FBTyx1QkFBWSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFFMUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQztTQUM5QixLQUFLLENBQUMsK0JBQStCLENBQUM7UUFDdkMsMEJBQTBCO1NBQ3pCLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUUxQixHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFO1FBQ2YsTUFBTSxNQUFNLEdBQUcsTUFBTSxHQUFHLElBQUksQ0FBQztRQUU3QixJQUFJLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLEdBQUcsS0FBSyxHQUFHLE1BQU0sRUFBRTtZQUNqRCxVQUFVLElBQUksR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQztZQUNuQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1NBQ2pCO2FBQ0k7WUFDRCxJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxLQUFLLElBQUksRUFBRTtnQkFDcEMsVUFBVSxJQUFJLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7Z0JBQ25DLE1BQU0sR0FBRyxFQUFFLENBQUM7YUFDZjtZQUVELE1BQU0sSUFBSSxJQUFJLENBQUM7U0FDbEI7SUFDTCxDQUFDLENBQUMsQ0FBQztJQUVILE9BQU8sdUJBQVksQ0FBQyxVQUFVLEdBQUcsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLENBQUMsQ0FBQztBQUMxRCxDQUFDO0FBOUJELDRCQThCQztBQUVELFNBQWdCLGVBQWUsQ0FBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLE1BQU0sR0FBRyxLQUFLO0lBQzNELElBQUksV0FBVyxHQUFHLEVBQUUsQ0FBQztJQUNyQixNQUFNLEtBQUssR0FBUyxFQUFFLENBQUM7SUFDdkIsSUFBSSxTQUFTLEdBQUssSUFBSSxDQUFDO0lBRXZCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1FBQ2pDLE1BQU0sV0FBVyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUUzQixJQUFJLFdBQVcsS0FBSyxTQUFTLEVBQUU7WUFDM0IsSUFBSSxTQUFTO2dCQUNULFdBQVcsSUFBSSxXQUFXLENBQUM7aUJBQzFCO2dCQUNELEtBQUssQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7Z0JBQ3hCLFdBQVcsR0FBRyxFQUFFLENBQUM7YUFDcEI7U0FDSjthQUNJLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRTtZQUN2QyxJQUFJLFNBQVMsS0FBSyxXQUFXO2dCQUN6QixTQUFTLEdBQUcsSUFBSSxDQUFDO2lCQUNoQixJQUFJLENBQUMsU0FBUztnQkFDZixTQUFTLEdBQUcsV0FBVyxDQUFDOztnQkFFeEIsV0FBVyxJQUFJLFdBQVcsQ0FBQztTQUNsQzs7WUFFRyxXQUFXLElBQUksV0FBVyxDQUFDO0tBQ2xDO0lBRUQsSUFBSSxXQUFXO1FBQ1gsS0FBSyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUU1QixPQUFPLEtBQUssQ0FBQztBQUNqQixDQUFDO0FBaENELDBDQWdDQztBQUVELFNBQWdCLGVBQWUsQ0FBRSxLQUFLO0lBQ2xDLE9BQU8sS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0FBQ3ZDLENBQUM7QUFGRCwwQ0FFQztBQUVELFNBQWdCLDJCQUEyQixDQUFFLEtBQUssRUFBRSxTQUFTLEdBQUcsMkJBQTJCLENBQUMsU0FBUyxFQUFFLFNBQVMsR0FBRywyQkFBMkIsQ0FBQyxVQUFVO0lBQ3JKLE9BQU8sS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEdBQUcsU0FBUyxHQUFHLElBQUksR0FBRyxTQUFTLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUNoRixDQUFDO0FBRkQsa0VBRUM7QUFFRCxTQUFnQixrQkFBa0IsQ0FBRSxLQUFLO0lBQ3JDLE9BQU8sS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO0FBQzdDLENBQUM7QUFGRCxnREFFQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBpbmRlbnRTdHJpbmcgZnJvbSAnaW5kZW50LXN0cmluZyc7XG5cbmNvbnN0IERFRkFVTFRfQ09OQ0FURU5BVEVEX1ZBTFVFUyA9IHtcbiAgICBTRVBBUkFUT1I6ICAnLCAnLFxuICAgIFFVT1RFX0NIQVI6ICdcIidcbn07XG5cbmZ1bmN0aW9uIHJ0cmltIChzdHIpIHtcbiAgICByZXR1cm4gc3RyLnJlcGxhY2UoL1xccyskLywgJycpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVtb3ZlVFRZQ29sb3JzIChzdHIpIHtcbiAgICByZXR1cm4gc3RyLnJlcGxhY2UoL1xcMDMzXFxbWzAtOTtdKm0vZywgJycpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gd29yZFdyYXAgKHN0ciwgaW5kZW50LCB3aWR0aCkge1xuICAgIGxldCBjdXJTdHIgICAgID0gJyc7XG4gICAgbGV0IHdyYXBwZWRNc2cgPSAnJztcblxuICAgIGlmIChyZW1vdmVUVFlDb2xvcnMoc3RyKS5sZW5ndGggPD0gd2lkdGggLSBpbmRlbnQpXG4gICAgICAgIHJldHVybiBpbmRlbnRTdHJpbmcoc3RyLCAnICcsIGluZGVudCk7XG5cbiAgICBzdHIgPSBzdHIucmVwbGFjZSgvKFxcclxcbikvZ20sICdcXG4nKVxuICAgICAgICAuc3BsaXQoLyhcXFMrWyBcXHRdKyl8KFxcUysoPzpcXG4pKXwoXFxuKS9tKVxuICAgICAgICAvL05PVEU6IGN1dCBlbXB0eSBlbGVtZW50c1xuICAgICAgICAuZmlsdGVyKGVsbSA9PiAhIWVsbSk7XG5cbiAgICBzdHIuZm9yRWFjaCh3b3JkID0+IHtcbiAgICAgICAgY29uc3QgbmV3U3RyID0gY3VyU3RyICsgd29yZDtcblxuICAgICAgICBpZiAocmVtb3ZlVFRZQ29sb3JzKG5ld1N0cikubGVuZ3RoID4gd2lkdGggLSBpbmRlbnQpIHtcbiAgICAgICAgICAgIHdyYXBwZWRNc2cgKz0gYCR7cnRyaW0oY3VyU3RyKX1cXG5gO1xuICAgICAgICAgICAgY3VyU3RyID0gd29yZDtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGlmIChjdXJTdHJbY3VyU3RyLmxlbmd0aCAtIDFdID09PSAnXFxuJykge1xuICAgICAgICAgICAgICAgIHdyYXBwZWRNc2cgKz0gYCR7cnRyaW0oY3VyU3RyKX1cXG5gO1xuICAgICAgICAgICAgICAgIGN1clN0ciA9ICcnO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjdXJTdHIgKz0gd29yZDtcbiAgICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGluZGVudFN0cmluZyh3cmFwcGVkTXNnICsgY3VyU3RyLCAnICcsIGluZGVudCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzcGxpdFF1b3RlZFRleHQgKHN0ciwgc3BsaXRDaGFyLCBxdW90ZXMgPSAnXCJcXCcnKSB7XG4gICAgbGV0IGN1cnJlbnRQYXJ0ID0gJyc7XG4gICAgY29uc3QgcGFydHMgICAgICAgPSBbXTtcbiAgICBsZXQgcXVvdGVDaGFyICAgPSBudWxsO1xuXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzdHIubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgY29uc3QgY3VycmVudENoYXIgPSBzdHJbaV07XG5cbiAgICAgICAgaWYgKGN1cnJlbnRDaGFyID09PSBzcGxpdENoYXIpIHtcbiAgICAgICAgICAgIGlmIChxdW90ZUNoYXIpXG4gICAgICAgICAgICAgICAgY3VycmVudFBhcnQgKz0gY3VycmVudENoYXI7XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBwYXJ0cy5wdXNoKGN1cnJlbnRQYXJ0KTtcbiAgICAgICAgICAgICAgICBjdXJyZW50UGFydCA9ICcnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKHF1b3Rlcy5pbmRleE9mKGN1cnJlbnRDaGFyKSA+IC0xKSB7XG4gICAgICAgICAgICBpZiAocXVvdGVDaGFyID09PSBjdXJyZW50Q2hhcilcbiAgICAgICAgICAgICAgICBxdW90ZUNoYXIgPSBudWxsO1xuICAgICAgICAgICAgZWxzZSBpZiAoIXF1b3RlQ2hhcilcbiAgICAgICAgICAgICAgICBxdW90ZUNoYXIgPSBjdXJyZW50Q2hhcjtcbiAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICBjdXJyZW50UGFydCArPSBjdXJyZW50Q2hhcjtcbiAgICAgICAgfVxuICAgICAgICBlbHNlXG4gICAgICAgICAgICBjdXJyZW50UGFydCArPSBjdXJyZW50Q2hhcjtcbiAgICB9XG5cbiAgICBpZiAoY3VycmVudFBhcnQpXG4gICAgICAgIHBhcnRzLnB1c2goY3VycmVudFBhcnQpO1xuXG4gICAgcmV0dXJuIHBhcnRzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UGx1cmFsU3VmZml4IChhcnJheSkge1xuICAgIHJldHVybiBhcnJheS5sZW5ndGggPiAxID8gJ3MnIDogJyc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRDb25jYXRlbmF0ZWRWYWx1ZXNTdHJpbmcgKGFycmF5LCBzZXBhcmF0b3IgPSBERUZBVUxUX0NPTkNBVEVOQVRFRF9WQUxVRVMuU0VQQVJBVE9SLCBxdW90ZUNoYXIgPSBERUZBVUxUX0NPTkNBVEVOQVRFRF9WQUxVRVMuUVVPVEVfQ0hBUikge1xuICAgIHJldHVybiBhcnJheS5tYXAoaXRlbSA9PiBgJHtxdW90ZUNoYXJ9JHtpdGVtfSR7cXVvdGVDaGFyfWApLmpvaW4oc2VwYXJhdG9yKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFRvQmVJblBhc3RUZW5zZSAoYXJyYXkpIHtcbiAgICByZXR1cm4gYXJyYXkubGVuZ3RoID4gMSA/ICd3ZXJlJyA6ICd3YXMnO1xufVxuIl19