diff --git a/packages/code-analyzer-pmd-engine/package.json b/packages/code-analyzer-pmd-engine/package.json
index 8a8c91c2..c431234b 100644
--- a/packages/code-analyzer-pmd-engine/package.json
+++ b/packages/code-analyzer-pmd-engine/package.json
@@ -1,7 +1,7 @@
{
"name": "@salesforce/code-analyzer-pmd-engine",
"description": "Plugin package that adds 'pmd' and 'cpd' as engines into Salesforce Code Analyzer",
- "version": "0.14.0",
+ "version": "0.14.1-SNAPSHOT",
"author": "The Salesforce Code Analyzer Team",
"license": "BSD-3-Clause",
"homepage": "https://developer.salesforce.com/docs/platform/salesforce-code-analyzer/overview",
diff --git a/packages/code-analyzer-pmd-engine/src/pmd-engine.ts b/packages/code-analyzer-pmd-engine/src/pmd-engine.ts
index 656a8bf1..8ed919ee 100644
--- a/packages/code-analyzer-pmd-engine/src/pmd-engine.ts
+++ b/packages/code-analyzer-pmd-engine/src/pmd-engine.ts
@@ -118,7 +118,7 @@ function toRuleDescription(pmdRuleInfo: PmdRuleInfo): RuleDescription {
severityLevel: toSeverityLevel(pmdRuleInfo.priority),
tags: ['Recommended', pmdRuleInfo.ruleSet.replaceAll(' ', ''), languageId + 'Language'],
description: pmdRuleInfo.description,
- resourceUrls: [pmdRuleInfo.externalInfoUrl] // TODO: Eventually we'll want to add in well architected links
+ resourceUrls: pmdRuleInfo.externalInfoUrl ? [pmdRuleInfo.externalInfoUrl] : [] // TODO: Eventually we'll want to add in well architected links
};
}
diff --git a/packages/code-analyzer-pmd-engine/test/pmd-engine.test.ts b/packages/code-analyzer-pmd-engine/test/pmd-engine.test.ts
index 62c9fe53..4b646b85 100644
--- a/packages/code-analyzer-pmd-engine/test/pmd-engine.test.ts
+++ b/packages/code-analyzer-pmd-engine/test/pmd-engine.test.ts
@@ -152,6 +152,7 @@ describe('Tests for the describeRules method of PmdEngine', () => {
const fakeRule10Description: RuleDescription = expectContainsRuleWithName(ruleDescriptions, 'fakerule10'); // From somecat4.xml
expect(fakeRule10Description.severityLevel).toEqual(SeverityLevel.High);
expect(fakeRule10Description.tags).toEqual(['Recommended', 'SomeCat4', 'javascriptLanguage']);
+ expect(fakeRule10Description.resourceUrls).toHaveLength(0); // This particular rule purposely has no externalInfoUrl defined, so we confirm that it gives no resourceUrls.
expectContainsRuleWithName(ruleDescriptions, 'fakerule11'); // From somecat4.xml
expectContainsRuleWithName(ruleDescriptions, 'fakerule12'); // From somecat4.xml
expectContainsRuleWithName(ruleDescriptions, 'fakerule13'); // From somecat4.xml
diff --git a/packages/code-analyzer-pmd-engine/test/test-data/custom rules/subfolder/somecat4.xml b/packages/code-analyzer-pmd-engine/test/test-data/custom rules/subfolder/somecat4.xml
index 2ceb49ae..816dcd13 100644
--- a/packages/code-analyzer-pmd-engine/test/test-data/custom rules/subfolder/somecat4.xml
+++ b/packages/code-analyzer-pmd-engine/test/test-data/custom rules/subfolder/somecat4.xml
@@ -15,8 +15,7 @@
message="Avoid using with - it's bad news"
language="ecmascript"
since="5.0.1"
- class="net.sourceforge.pmd.lang.rule.xpath.XPathRule"
- externalInfoUrl="${pmd.website.baseurl}/pmd_rules_ecmascript_bestpractices.html#avoidwithstatement">
+ class="net.sourceforge.pmd.lang.rule.xpath.XPathRule">
Avoid using with - it's bad news
1