UNPKG

testcafe

Version:

Automated browser testing for the modern web development stack.

106 lines 13.3 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.createList = exports.getToBeInPastTense = exports.getConcatenatedValuesString = exports.getPluralSuffix = exports.splitQuotedText = exports.wordWrap = exports.removeTTYColors = void 0; 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 (0, 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 (0, 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 getDisplayedItemText(item, quote) { return `${quote}${item}${quote}`; } function getConcatenatedValuesString(array, separator = DEFAULT_CONCATENATED_VALUES.SEPARATOR, quoteChar = DEFAULT_CONCATENATED_VALUES.QUOTE_CHAR) { const clonedArray = [...array]; if (separator.indexOf('\n') > -1) return clonedArray.map(item => getDisplayedItemText(item, quoteChar)).join(separator); else if (clonedArray.length === 1) return getDisplayedItemText(clonedArray[0], quoteChar); else if (clonedArray.length === 2) { const item1 = array[0]; const item2 = array[1]; return `${getDisplayedItemText(item1, quoteChar)} and ${getDisplayedItemText(item2, quoteChar)}`; } const lastItem = clonedArray.pop(); const otherItemString = clonedArray.map(item => getDisplayedItemText(item, quoteChar)).join(separator); return `${otherItemString}, and ${getDisplayedItemText(lastItem, quoteChar)}`; } exports.getConcatenatedValuesString = getConcatenatedValuesString; function getToBeInPastTense(array) { return array.length > 1 ? 'were' : 'was'; } exports.getToBeInPastTense = getToBeInPastTense; function createList(array, PREFIX = '- ', SEPARATOR = '\n') { return array.map(option => PREFIX + option).join(SEPARATOR); } exports.createList = createList; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyaW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL3N0cmluZy5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxrRUFBeUM7QUFFekMsTUFBTSwyQkFBMkIsR0FBRztJQUNoQyxTQUFTLEVBQUcsSUFBSTtJQUNoQixVQUFVLEVBQUUsR0FBRztDQUNsQixDQUFDO0FBRUYsU0FBUyxLQUFLLENBQUUsR0FBRztJQUNmLE9BQU8sR0FBRyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFDbkMsQ0FBQztBQUVELFNBQWdCLGVBQWUsQ0FBRSxHQUFHO0lBQ2hDLE9BQU8sR0FBRyxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsRUFBRSxFQUFFLENBQUMsQ0FBQztBQUM5QyxDQUFDO0FBRkQsMENBRUM7QUFFRCxTQUFnQixRQUFRLENBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxLQUFLO0lBQ3hDLElBQUksTUFBTSxHQUFPLEVBQUUsQ0FBQztJQUNwQixJQUFJLFVBQVUsR0FBRyxFQUFFLENBQUM7SUFFcEIsSUFBSSxlQUFlLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxJQUFJLEtBQUssR0FBRyxNQUFNO1FBQzdDLE9BQU8sSUFBQSx1QkFBWSxFQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFFMUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQztTQUM5QixLQUFLLENBQUMsK0JBQStCLENBQUM7UUFDdkMsMEJBQTBCO1NBQ3pCLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUUxQixHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFO1FBQ2YsTUFBTSxNQUFNLEdBQUcsTUFBTSxHQUFHLElBQUksQ0FBQztRQUU3QixJQUFJLGVBQWUsQ0FBQyxNQUFNLENB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JztcblxuY29uc3QgREVGQVVMVF9DT05DQVRFTkFURURfVkFMVUVTID0ge1xuICAgIFNFUEFSQVRPUjogICcsICcsXG4gICAgUVVPVEVfQ0hBUjogJ1wiJyxcbn07XG5cbmZ1bmN0aW9uIHJ0cmltIChzdHIpIHtcbiAgICByZXR1cm4gc3RyLnJlcGxhY2UoL1xccyskLywgJycpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVtb3ZlVFRZQ29sb3JzIChzdHIpIHtcbiAgICByZXR1cm4gc3RyLnJlcGxhY2UoL1xcMDMzXFxbWzAtOTtdKm0vZywgJycpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gd29yZFdyYXAgKHN0ciwgaW5kZW50LCB3aWR0aCkge1xuICAgIGxldCBjdXJTdHIgICAgID0gJyc7XG4gICAgbGV0IHdyYXBwZWRNc2cgPSAnJztcblxuICAgIGlmIChyZW1vdmVUVFlDb2xvcnMoc3RyKS5sZW5ndGggPD0gd2lkdGggLSBpbmRlbnQpXG4gICAgICAgIHJldHVybiBpbmRlbnRTdHJpbmcoc3RyLCAnICcsIGluZGVudCk7XG5cbiAgICBzdHIgPSBzdHIucmVwbGFjZSgvKFxcclxcbikvZ20sICdcXG4nKVxuICAgICAgICAuc3BsaXQoLyhcXFMrWyBcXHRdKyl8KFxcUysoPzpcXG4pKXwoXFxuKS9tKVxuICAgICAgICAvL05PVEU6IGN1dCBlbXB0eSBlbGVtZW50c1xuICAgICAgICAuZmlsdGVyKGVsbSA9PiAhIWVsbSk7XG5cbiAgICBzdHIuZm9yRWFjaCh3b3JkID0+IHtcbiAgICAgICAgY29uc3QgbmV3U3RyID0gY3VyU3RyICsgd29yZDtcblxuICAgICAgICBpZiAocmVtb3ZlVFRZQ29sb3JzKG5ld1N0cikubGVuZ3RoID4gd2lkdGggLSBpbmRlbnQpIHtcbiAgICAgICAgICAgIHdyYXBwZWRNc2cgKz0gYCR7cnRyaW0oY3VyU3RyKX1cXG5gO1xuICAgICAgICAgICAgY3VyU3RyID0gd29yZDtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGlmIChjdXJTdHJbY3VyU3RyLmxlbmd0aCAtIDFdID09PSAnXFxuJykge1xuICAgICAgICAgICAgICAgIHdyYXBwZWRNc2cgKz0gYCR7cnRyaW0oY3VyU3RyKX1cXG5gO1xuICAgICAgICAgICAgICAgIGN1clN0ciA9ICcnO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjdXJTdHIgKz0gd29yZDtcbiAgICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGluZGVudFN0cmluZyh3cmFwcGVkTXNnICsgY3VyU3RyLCAnICcsIGluZGVudCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzcGxpdFF1b3RlZFRleHQgKHN0ciwgc3BsaXRDaGFyLCBxdW90ZXMgPSAnXCJcXCcnKSB7XG4gICAgbGV0IGN1cnJlbnRQYXJ0ID0gJyc7XG4gICAgY29uc3QgcGFydHMgICAgID0gW107XG4gICAgbGV0IHF1b3RlQ2hhciAgID0gbnVsbDtcblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc3RyLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRDaGFyID0gc3RyW2ldO1xuXG4gICAgICAgIGlmIChjdXJyZW50Q2hhciA9PT0gc3BsaXRDaGFyKSB7XG4gICAgICAgICAgICBpZiAocXVvdGVDaGFyKVxuICAgICAgICAgICAgICAgIGN1cnJlbnRQYXJ0ICs9IGN1cnJlbnRDaGFyO1xuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgcGFydHMucHVzaChjdXJyZW50UGFydCk7XG4gICAgICAgICAgICAgICAgY3VycmVudFBhcnQgPSAnJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChxdW90ZXMuaW5kZXhPZihjdXJyZW50Q2hhcikgPiAtMSkge1xuICAgICAgICAgICAgaWYgKHF1b3RlQ2hhciA9PT0gY3VycmVudENoYXIpXG4gICAgICAgICAgICAgICAgcXVvdGVDaGFyID0gbnVsbDtcbiAgICAgICAgICAgIGVsc2UgaWYgKCFxdW90ZUNoYXIpXG4gICAgICAgICAgICAgICAgcXVvdGVDaGFyID0gY3VycmVudENoYXI7XG4gICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgY3VycmVudFBhcnQgKz0gY3VycmVudENoYXI7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZVxuICAgICAgICAgICAgY3VycmVudFBhcnQgKz0gY3VycmVudENoYXI7XG4gICAgfVxuXG4gICAgaWYgKGN1cnJlbnRQYXJ0KVxuICAgICAgICBwYXJ0cy5wdXNoKGN1cnJlbnRQYXJ0KTtcblxuICAgIHJldHVybiBwYXJ0cztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFBsdXJhbFN1ZmZpeCAoYXJyYXkpIHtcbiAgICByZXR1cm4gYXJyYXkubGVuZ3RoID4gMSA/ICdzJyA6ICcnO1xufVxuXG5mdW5jdGlvbiBnZXREaXNwbGF5ZWRJdGVtVGV4dCAoaXRlbSwgcXVvdGUpIHtcbiAgICByZXR1cm4gYCR7cXVvdGV9JHtpdGVtfSR7cXVvdGV9YDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldENvbmNhdGVuYXRlZFZhbHVlc1N0cmluZyAoYXJyYXksIHNlcGFyYXRvciA9IERFRkFVTFRfQ09OQ0FURU5BVEVEX1ZBTFVFUy5TRVBBUkFUT1IsIHF1b3RlQ2hhciA9IERFRkFVTFRfQ09OQ0FURU5BVEVEX1ZBTFVFUy5RVU9URV9DSEFSKSB7XG4gICAgY29uc3QgY2xvbmVkQXJyYXkgPSBbLi4uYXJyYXldO1xuXG4gICAgaWYgKHNlcGFyYXRvci5pbmRleE9mKCdcXG4nKSA+IC0xKVxuICAgICAgICByZXR1cm4gY2xvbmVkQXJyYXkubWFwKGl0ZW0gPT4gZ2V0RGlzcGxheWVkSXRlbVRleHQoaXRlbSwgcXVvdGVDaGFyKSkuam9pbihzZXBhcmF0b3IpO1xuXG4gICAgZWxzZSBpZiAoY2xvbmVkQXJyYXkubGVuZ3RoID09PSAxKVxuICAgICAgICByZXR1cm4gZ2V0RGlzcGxheWVkSXRlbVRleHQoY2xvbmVkQXJyYXlbMF0sIHF1b3RlQ2hhcik7XG5cbiAgICBlbHNlIGlmIChjbG9uZWRBcnJheS5sZW5ndGggPT09IDIpIHtcbiAgICAgICAgY29uc3QgaXRlbTEgPSBhcnJheVswXTtcbiAgICAgICAgY29uc3QgaXRlbTIgPSBhcnJheVsxXTtcblxuICAgICAgICByZXR1cm4gYCR7Z2V0RGlzcGxheWVkSXRlbVRleHQoaXRlbTEsIHF1b3RlQ2hhcil9IGFuZCAke2dldERpc3BsYXllZEl0ZW1UZXh0KGl0ZW0yLCBxdW90ZUNoYXIpfWA7XG4gICAgfVxuXG4gICAgY29uc3QgbGFzdEl0ZW0gICAgICAgID0gY2xvbmVkQXJyYXkucG9wKCk7XG4gICAgY29uc3Qgb3RoZXJJdGVtU3RyaW5nID0gY2xvbmVkQXJyYXkubWFwKGl0ZW0gPT4gZ2V0RGlzcGxheWVkSXRlbVRleHQoaXRlbSwgcXVvdGVDaGFyKSkuam9pbihzZXBhcmF0b3IpO1xuXG4gICAgcmV0dXJuIGAke290aGVySXRlbVN0cmluZ30sIGFuZCAke2dldERpc3BsYXllZEl0ZW1UZXh0KGxhc3RJdGVtLCBxdW90ZUNoYXIpfWA7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRUb0JlSW5QYXN0VGVuc2UgKGFycmF5KSB7XG4gICAgcmV0dXJuIGFycmF5Lmxlbmd0aCA+IDEgPyAnd2VyZScgOiAnd2FzJztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUxpc3QgKGFycmF5LCBQUkVGSVggPSAnLSAnLCBTRVBBUkFUT1IgPSAnXFxuJykge1xuICAgIHJldHVybiBhcnJheS5tYXAob3B0aW9uID0+IFBSRUZJWCArIG9wdGlvbikuam9pbihTRVBBUkFUT1IpO1xufVxuIl19