This change modifies the build scripts to use --legacy-peer-deps flag when installing npm dependencies to resolve potential peer dependency conflicts during the build process. The change is applied to both bash (build.sh) and batch (build.bat) build scripts.
83 lines
2.7 KiB
JavaScript
83 lines
2.7 KiB
JavaScript
/**
|
|
* @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;
|
|
};
|