UNPKG

playwright-teamcity-reporter

Version:
48 lines 1.81 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getTestName = exports.writeServiceMessage = exports.escape = exports.stringify = void 0; const replacer = () => { const seen = new WeakSet(); return (key, value) => { if (typeof value === "object" && value !== null) { if (seen.has(value)) { return; } seen.add(value); } return value; }; }; const stringify = (data, space) => { return JSON.stringify(data, replacer(), space).replace(/"/g, "'"); }; exports.stringify = stringify; // Escape text message to be compatible with Teamcity // https://www.jetbrains.com/help/teamcity/2021.2/service-messages.html#Escaped+values /* eslint-disable no-control-regex */ const escape = (text) => text ? text .replace(/\x1B.*?m/g, "") .replace(/\|/g, "||") .replace(/\n/g, "|n") .replace(/\r/g, "|r") .replace(/\[/g, "|[") .replace(/\]/g, "|]") .replace(/\u0085/g, "|x") .replace(/\u2028/g, "|l") .replace(/\u2029/g, "|p") .replace(/'/g, "|'") : ''; exports.escape = escape; /* eslint-enable no-control-regex */ const writeServiceMessage = (messageName, parts) => { const textParts = Object.entries(parts) .map(([key, value]) => ` ${key}='${(0, exports.escape)(value)}'`) .join(""); console.log(`##teamcity[${messageName}${textParts}]`); }; exports.writeServiceMessage = writeServiceMessage; // https://www.jetbrains.com/help/teamcity/2021.2/service-messages.html#Interpreting+Test+Names const getTestName = (test) => test.titlePath().filter(title => title).join(": "); exports.getTestName = getTestName; //# sourceMappingURL=utils.js.map