Resolves a conflict in pkg/cmd/list_test.go: upstream migrated the
release-count assertion to assert.Len while this branch added the
showSource parameter to newReleaseListWriter. Kept both.
stale-issue-message:'This issue has been marked as stale because it has been open for 90 days with no activity. This thread will be automatically closed in 30 days if no further activity occurs.'
t.Errorf("validateChartVersion(%s) to return \"%s\", got no error",test.Version,test.ErrorMsg)
}
fori,test:=rangefailTest{
t.Run(strconv.Itoa(i),func(t*testing.T){
badChart.Version=test.Version
require.ErrorContains(t,validateChartVersion(badChart),test.ErrorMsg,"validateChartVersion(%s) to return \"%s\", got no error",test.Version,test.ErrorMsg)
})
}
for_,version:=rangesuccessTest{
badChart.Version=version
err:=validateChartVersion(badChart)
iferr!=nil{
t.Errorf("validateChartVersion(%s) to return no error, got a linter error",version)
}
assert.NoError(t,validateChartVersion(badChart),"validateChartVersion(%s) to return no error, got a linter error",version)
require.ErrorContains(t,validateChartMaintainer(badChart),test.ErrorMsg,"validateChartMaintainer(%s, %s) to return \"%s\", got no error",test.Name,test.Email,test.ErrorMsg)
iferr==nil||!strings.Contains(err.Error(),"Valid extensions are .yaml, .yml, .tpl, or .txt"){
t.Errorf("validateAllowedExtension('%s') to return \"Valid extensions are .yaml, .yml, .tpl, or .txt\", got no error",test)
}
require.ErrorContains(t,validateAllowedExtension(test),"Valid extensions are .yaml, .yml, .tpl, or .txt","validateAllowedExtension('%s') to return \"Valid extensions are .yaml, .yml, .tpl, or .txt\", got no error",test)
t.Errorf("RunLinterRule(%d, \"chart\", %v), linter.Messages should now have %d message, we got %d",test.Severity,test.LintError,test.ExpectedMessages,len(linter.Messages))
t.Errorf("RunLinterRule(%d, \"chart\", %v), linter.HighestSeverity should be %d, we got %d",test.Severity,test.LintError,test.ExpectedHighestSeverity,linter.HighestSeverity)
}
ifisValid!=test.ExpectedReturn{
t.Errorf("RunLinterRule(%d, \"chart\", %v), should have returned %t but returned %t",test.Severity,test.LintError,test.ExpectedReturn,isValid)
}
assert.Lenf(t,linter.Messages,test.ExpectedMessages,"RunLinterRule(%d, \"chart\", %v), linter.Messages should now have %d message, we got %d",test.Severity,test.LintError,test.ExpectedMessages,len(linter.Messages))
assert.Equalf(t,test.ExpectedHighestSeverity,linter.HighestSeverity,"RunLinterRule(%d, \"chart\", %v), linter.HighestSeverity should be %d, we got %d",test.Severity,test.LintError,test.ExpectedHighestSeverity,linter.HighestSeverity)
assert.Equalf(t,test.ExpectedReturn,isValid,"RunLinterRule(%d, \"chart\", %v), should have returned %t but returned %t",test.Severity,test.LintError,test.ExpectedReturn,isValid)
t.Fatalf("dependency chart name should be %s but got %s",nameOverride,prodDependencyValues["nameOverride"])
}
require.Equal(t,nameOverride,prodDependencyValues["nameOverride"],"dependency chart name should be %s but got %s",nameOverride,prodDependencyValues["nameOverride"])
}
funcTestGetAliasDependency(t*testing.T){
c:=loadChart(t,"testdata/frobnitz")
req:=c.Metadata.Dependencies
iflen(req)==0{
t.Fatal("there are no dependencies to test")
}
require.NotEmpty(t,req,"there are no dependencies to test")
t.Fatal("dependency chart version outside the compatible range should not be considered compatible")
}
require.False(t,IsCompatibleRange(req[0].Version,aliasChart.Metadata.Version),"dependency chart version outside the compatible range should not be considered compatible")
}
funcTestDependentChartAliases(t*testing.T){
c:=loadChart(t,"testdata/dependent-chart-alias")
req:=c.Metadata.Dependencies
iflen(c.Dependencies())!=2{
t.Fatalf("expected 2 dependencies for this chart, but got %d",len(c.Dependencies()))
t.Fatalf("expected number of chart dependencies %d, but got %d",len(c.Metadata.Dependencies),len(c.Dependencies()))
}
require.Len(t,c.Dependencies(),2,"expected 2 dependencies for this chart, but got %d",len(c.Dependencies()))
require.NoError(t,processDependencyEnabled(c,c.Values,""),"expected no errors")
require.Len(t,c.Dependencies(),3,"expected alias dependencies to be added")
require.Len(t,c.Dependencies(),len(c.Metadata.Dependencies),"expected number of chart dependencies %d, but got %d",len(c.Metadata.Dependencies),len(c.Dependencies()))
t.Fatalf("expected number of chart dependencies %d, but got %d",len(c.Metadata.Dependencies),len(c.Dependencies()))
}
require.Len(t,c.Dependencies(),2,"expected 2 dependencies for this chart, but got %d",len(c.Dependencies()))
require.NoError(t,processDependencyEnabled(c,c.Values,""),"expected no errors")
require.Len(t,c.Dependencies(),2,"expected no changes in dependencies")
require.Len(t,c.Dependencies(),len(c.Metadata.Dependencies),"expected number of chart dependencies %d, but got %d",len(c.Metadata.Dependencies),len(c.Dependencies()))
require.IsType(t,&VCSInstaller{},i,"expected a VCSInstaller")
iferr:=Install(i);err==nil{
t.Fatal("expected error for version does not exists, got none")
}elseifstrings.Contains(err.Error(),"Could not resolve host: github.com"){
err=Install(i)
require.Error(t,err,"expected error for version does not exists, got none")
ifstrings.Contains(err.Error(),"Could not resolve host: github.com"){
t.Skip("Unable to run test without Internet access")
}elseiferr.Error()!=fmt.Sprintf("requested version %q does not exist for plugin %q",version,source){
t.Fatalf("expected error for version does not exists, got (%v)",err)
}
require.EqualErrorf(t,err,fmt.Sprintf("requested version %q does not exist for plugin %q",version,source),"expected error for version does not exists")
}
funcTestVCSInstallerUpdate(t*testing.T){
ensure.HelmHome(t)
source:="https://github.com/adamreese/helm-env"
i,err:=NewForSource(source,"")
iferr!=nil{
t.Fatalf("unexpected error: %s",err)
}
require.NoError(t,err)
// ensure a VCSInstaller was returned
if_,ok:=i.(*VCSInstaller);!ok{
t.Fatal("expected a VCSInstaller")
}
require.IsType(t,&VCSInstaller{},i,"expected a VCSInstaller")
iferr:=Update(i);err==nil{
t.Fatal("expected error for plugin does not exist, got none")
}elseiferr.Error()!="plugin does not exist"{
t.Fatalf("expected error for plugin does not exist, got (%v)",err)
}
require.EqualErrorf(t,Update(i),"plugin does not exist","expected error for plugin does not exist")
// Install plugin before update
iferr:=Install(i);err!=nil{
ifstrings.Contains(err.Error(),"Could not resolve host: github.com"){
t.Skip("Unable to run test without Internet access")
}else{
t.Fatal(err)
}
err=Install(i)
iferr!=nil&&strings.Contains(err.Error(),"Could not resolve host: github.com"){
t.Skip("Unable to run test without Internet access")