diff --git a/configs/named_values.go b/configs/named_values.go index 128bd2787..e0b708a1e 100644 --- a/configs/named_values.go +++ b/configs/named_values.go @@ -399,7 +399,7 @@ func looksLikeSentences(s string) bool { } runes := []rune(s) // HCL guarantees that all strings are valid UTF-8 first := runes[0] - last := runes[len(s)-1] + last := runes[len(runes)-1] // If the first rune is a letter then it must be an uppercase letter. // (This will only see the first rune in a multi-rune combining sequence, diff --git a/configs/named_values_test.go b/configs/named_values_test.go new file mode 100644 index 000000000..3a44438a4 --- /dev/null +++ b/configs/named_values_test.go @@ -0,0 +1,33 @@ +package configs + +import ( + "testing" +) + +func Test_looksLikeSentences(t *testing.T) { + tests := map[string]struct { + args string + want bool + }{ + "empty sentence": { + args: "", + want: false, + }, + "valid sentence": { + args: "A valid sentence.", + want: true, + }, + "valid sentence with an accent": { + args: `A Valid sentence with an accent "é".`, + want: true, + }, + } + + for name, tt := range tests { + t.Run(name, func(t *testing.T) { + if got := looksLikeSentences(tt.args); got != tt.want { + t.Errorf("looksLikeSentences() = %v, want %v", got, tt.want) + } + }) + } +}