Skip to content

Commit

Permalink
adds tests for handling of Helm index with broken chart versions helm…
Browse files Browse the repository at this point in the history
…#13176

Signed-off-by: ricardo.bartels@telekom.de <ricardo.bartels@telekom.de>
  • Loading branch information
bb-Ricardo committed Jul 14, 2024
1 parent 154b477 commit af13b0d
Showing 1 changed file with 74 additions and 0 deletions.
74 changes: 74 additions & 0 deletions pkg/repo/index_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -644,3 +644,77 @@ func TestIgnoreSkippableChartValidationError(t *testing.T) {
})
}
}

var indexWithDuplicatesInChartDeps = `
apiVersion: v1
entries:
nginx:
- urls:
- https://charts.helm.sh/stable/alpine-1.0.0.tgz
- http://storage2.googleapis.com/kubernetes-charts/alpine-1.0.0.tgz
name: alpine
description: string
home: https://github.com/something
digest: "sha256:1234567890abcdef"
- urls:
- https://charts.helm.sh/stable/nginx-0.2.0.tgz
name: nginx
description: string
version: 0.2.0
home: https://github.com/something/else
digest: "sha256:1234567890abcdef"
`
var indexWithDuplicatesInLastChartDeps = `
apiVersion: v1
entries:
nginx:
- urls:
- https://charts.helm.sh/stable/nginx-0.2.0.tgz
name: nginx
description: string
version: 0.2.0
home: https://github.com/something/else
digest: "sha256:1234567890abcdef"
- urls:
- https://charts.helm.sh/stable/alpine-1.0.0.tgz
- http://storage2.googleapis.com/kubernetes-charts/alpine-1.0.0.tgz
name: alpine
description: string
home: https://github.com/something
digest: "sha256:111"
`

func TestLoadIndex_DuplicateChartDeps(t *testing.T) {
tests := []struct {
source string
data string
}{
{
source: "indexWithDuplicatesInChartDeps",
data: indexWithDuplicatesInChartDeps,
},
{
source: "indexWithDuplicatesInLastChartDeps",
data: indexWithDuplicatesInLastChartDeps,
},
}
for _, tc := range tests {
t.Run(tc.source, func(t *testing.T) {
idx, err := loadIndex([]byte(tc.data), tc.source)
if err != nil {
t.Fatalf("unexpected error: %s", err)
}
cvs := idx.Entries["nginx"]
if cvs == nil {
if err != nil {
t.Error("expected one chart version not to be filtered out")
}
}
for _, v := range cvs {
if v.Name == "alpine" {
t.Error("malformed version was not filtered out")
}
}
})
}
}

0 comments on commit af13b0d

Please sign in to comment.