mirror of
https://github.com/helm/helm.git
synced 2026-08-08 09:01:25 +00:00
Merge pull request #32290 from mahesh-sadupalli/fix/files-lines-empty-panic
fix(engine): prevent Files.Lines panic on empty file
This commit is contained in:
@@ -154,7 +154,7 @@ func (f files) AsSecrets() string {
|
||||
// {{ range .Files.Lines "foo/bar.html" }}
|
||||
// {{ . }}{{ end }}
|
||||
func (f files) Lines(path string) []string {
|
||||
if f == nil || f[path] == nil {
|
||||
if f == nil || len(f[path]) == 0 {
|
||||
return []string{}
|
||||
}
|
||||
s := string(f[path])
|
||||
|
||||
@@ -30,6 +30,8 @@ var cases = []struct {
|
||||
{"story/author.txt", "Joseph Conrad"},
|
||||
{"multiline/test.txt", "bar\nfoo\n"},
|
||||
{"multiline/test_with_blank_lines.txt", "bar\nfoo\n\n\n"},
|
||||
{"empty/empty.txt", ""},
|
||||
{"empty/newline_only.txt", "\n"},
|
||||
}
|
||||
|
||||
func getTestFiles() files {
|
||||
@@ -109,3 +111,31 @@ func TestBlankLines(t *testing.T) {
|
||||
as.Equal("bar", out[0])
|
||||
as.Empty(out[3])
|
||||
}
|
||||
|
||||
func TestLinesEmptyFile(t *testing.T) {
|
||||
as := assert.New(t)
|
||||
|
||||
f := getTestFiles()
|
||||
|
||||
out := f.Lines("empty/empty.txt")
|
||||
as.Empty(out)
|
||||
}
|
||||
|
||||
func TestLinesNewlineOnlyFile(t *testing.T) {
|
||||
as := assert.New(t)
|
||||
|
||||
f := getTestFiles()
|
||||
|
||||
out := f.Lines("empty/newline_only.txt")
|
||||
as.Len(out, 1)
|
||||
as.Empty(out[0])
|
||||
}
|
||||
|
||||
func TestLinesMissingFile(t *testing.T) {
|
||||
as := assert.New(t)
|
||||
|
||||
f := getTestFiles()
|
||||
|
||||
out := f.Lines("nonexistent.txt")
|
||||
as.Empty(out)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user