|                                                                                  |  | /** * @fileoverview jUnit Reporter * @author Jamund Ferguson */"use strict";
const xmlEscape = require("../xml-escape");const path = require("path");
//------------------------------------------------------------------------------
// Helper Functions
//------------------------------------------------------------------------------
/** * Returns the severity of warning or error * @param {Object} message message object to examine * @returns {string} severity level * @private */function getMessageType(message) {    if (message.fatal || message.severity === 2) {        return "Error";    }    return "Warning";
}
/** * Returns a full file path without extension * @param {string} filePath input file path * @returns {string} file path without extension * @private */function pathWithoutExt(filePath) {    return path.join(path.dirname(filePath), path.basename(filePath, path.extname(filePath)));}
//------------------------------------------------------------------------------
// Public Interface
//------------------------------------------------------------------------------
module.exports = function(results) {
    let output = "";
    output += "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n";    output += "<testsuites>\n";
    results.forEach(result => {
        const messages = result.messages;        const classname = pathWithoutExt(result.filePath);
        if (messages.length > 0) {            output += `<testsuite package="org.eslint" time="0" tests="${messages.length}" errors="${messages.length}" name="${result.filePath}">\n`;            messages.forEach(message => {                const type = message.fatal ? "error" : "failure";
                output += `<testcase time="0" name="org.eslint.${message.ruleId || "unknown"}" classname="${classname}">`;                output += `<${type} message="${xmlEscape(message.message || "")}">`;                output += "<![CDATA[";                output += `line ${message.line || 0}, col `;                output += `${message.column || 0}, ${getMessageType(message)}`;                output += ` - ${xmlEscape(message.message || "")}`;                output += (message.ruleId ? ` (${message.ruleId})` : "");                output += "]]>";                output += `</${type}>`;                output += "</testcase>\n";            });            output += "</testsuite>\n";        } else {            output += `<testsuite package="org.eslint" time="0" tests="1" errors="0" name="${result.filePath}">\n`;            output += `<testcase time="0" name="${result.filePath}" classname="${classname}" />\n`;            output += "</testsuite>\n";        }
    });
    output += "</testsuites>\n";
    return output;};
 |