diff --git a/jenkins/util.go b/jenkins/util.go
index 3ebd3ec..4a1159f 100644
--- a/jenkins/util.go
+++ b/jenkins/util.go
@@ -3,6 +3,7 @@ package jenkins
import (
"context"
"fmt"
+ "html"
"log"
"regexp"
"strings"
@@ -83,9 +84,11 @@ func templateDiff(k, old, new string, d *schema.ResourceData) bool {
old = re.ReplaceAllString(old, "")
old = strings.Replace(old, " ", "", -1)
old = strings.TrimSpace(old)
+ old = html.UnescapeString(old)
new = re.ReplaceAllString(new, "")
new = strings.Replace(new, " ", "", -1)
new = strings.TrimSpace(new)
+ new = html.UnescapeString(new)
log.Printf("[DEBUG] jenkins::diff - Old: %q", old)
log.Printf("[DEBUG] jenkins::diff - New: %q", new)
diff --git a/jenkins/util_test.go b/jenkins/util_test.go
index be07151..6aa49e5 100644
--- a/jenkins/util_test.go
+++ b/jenkins/util_test.go
@@ -108,6 +108,24 @@ func TestTemplateDiff(t *testing.T) {
}
}
+func TestTemplateDiff_HTMLEntities(t *testing.T) {
+ job := resourceJenkinsFolder()
+ bag := job.TestResourceData()
+ _ = bag.Set("description", "Case")
+
+ inputLeft := "'/'"
+ inputRight := "'/'"
+ if actual := templateDiff("", inputLeft, inputRight, bag); !actual {
+ t.Errorf("Expected %s to be considered equal to %s", inputLeft, inputRight)
+ }
+
+ inputLeft = "'/'"
+ inputRight = "'/'"
+ if actual := templateDiff("", inputLeft, inputRight, bag); !actual {
+ t.Errorf("Expected %s to be considered equal to %s", inputLeft, inputRight)
+ }
+}
+
func TestGenerateCredentialID(t *testing.T) {
inputFolder, inputName := "test-folder", "test-name"
actual := generateCredentialID(inputFolder, inputName)