Skip to content

Commit 1d6bc5f

Browse files
custom formatter
1 parent f2840dc commit 1d6bc5f

File tree

1 file changed

+21
-5
lines changed

1 file changed

+21
-5
lines changed

tools/ipa/formatters/custom-formatter.js

Lines changed: 21 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,17 +15,33 @@ export default async function customJUnitFormatter(results, document, spectral)
1515
// Add test cases for each rule
1616
for (const ruleName of Object.keys(allRules)) {
1717
const rule = allRules[ruleName];
18+
19+
// Collect all results for this specific rule
20+
const ruleResults = results.filter((result) => result.code === ruleName);
21+
1822
const testCase = xml.ele('testcase', {
1923
classname: ruleName,
2024
name: rule.description || 'No description available',
21-
time: '0', // Default time
25+
time: '0',
2226
});
2327

2428
if (failedRules.has(ruleName)) {
25-
const failure = results.find((result) => result.code === ruleName);
26-
testCase.ele('failure', { type: ruleName }, failure.message);
27-
} else {
28-
testCase.ele('success'); // Mark as success for passed rules
29+
// Add detailed failure information including components
30+
ruleResults.forEach((result) => {
31+
const failureDetails = testCase.ele('failure', {
32+
type: ruleName,
33+
path: result.path || 'Unknown path'
34+
});
35+
36+
// Include component and specific location details
37+
failureDetails.txt(JSON.stringify({
38+
message: result.message,
39+
component: result.path || 'Unknown',
40+
location: result.range
41+
? `Line ${result.range.start.line}, Column ${result.range.start.character}`
42+
: 'No specific location',
43+
}, null, 2));
44+
});
2945
}
3046
}
3147

0 commit comments

Comments
 (0)