Skip to content

Commit

Permalink
adds test for issue with index filtering fluxcd#1515
Browse files Browse the repository at this point in the history
Signed-off-by: ricardo.bartels@telekom.de <ricardo.bartels@telekom.de>
  • Loading branch information
bb-Ricardo committed Jul 18, 2024
1 parent 017daf5 commit da6bcb7
Showing 1 changed file with 74 additions and 0 deletions.
74 changes: 74 additions & 0 deletions internal/helm/repository/chart_repository_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -803,3 +803,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 := IndexFromBytes([]byte(tc.data))
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 da6bcb7

Please sign in to comment.