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.'
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.'
require.ErrorContains(t,validateChartVersion(badChart),test.ErrorMsg,"validateChartVersion(%s) to return \"%s\", got no error",test.Version,test.ErrorMsg)
t.Errorf("validateChartVersion(%s) to return \"%s\", got no error",test.Version,test.ErrorMsg)
})
}
}
}
for_,version:=rangesuccessTest{
for_,version:=rangesuccessTest{
badChart.Version=version
badChart.Version=version
err:=validateChartVersion(badChart)
assert.NoError(t,validateChartVersion(badChart),"validateChartVersion(%s) to return no error, got a linter error",version)
iferr!=nil{
t.Errorf("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)
t.Errorf("validateChartMaintainer(%s, %s) to return \"%s\", got no error",test.Name,test.Email,test.ErrorMsg)
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)
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)
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))
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))
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.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)
require.Equal(t,nameOverride,prodDependencyValues["nameOverride"],"dependency chart name should be %s but got %s",nameOverride,prodDependencyValues["nameOverride"])
t.Fatalf("dependency chart name should be %s but got %s",nameOverride,prodDependencyValues["nameOverride"])
}
}
}
funcTestGetAliasDependency(t*testing.T){
funcTestGetAliasDependency(t*testing.T){
c:=loadChart(t,"testdata/frobnitz")
c:=loadChart(t,"testdata/frobnitz")
req:=c.Metadata.Dependencies
req:=c.Metadata.Dependencies
iflen(req)==0{
require.NotEmpty(t,req,"there are no dependencies to test")
require.False(t,IsCompatibleRange(req[0].Version,aliasChart.Metadata.Version),"dependency chart version outside the compatible range should not be considered compatible")
t.Fatal("dependency chart version outside the compatible range should not be considered compatible")
}
}
}
funcTestDependentChartAliases(t*testing.T){
funcTestDependentChartAliases(t*testing.T){
c:=loadChart(t,"testdata/dependent-chart-alias")
c:=loadChart(t,"testdata/dependent-chart-alias")
req:=c.Metadata.Dependencies
req:=c.Metadata.Dependencies
iflen(c.Dependencies())!=2{
require.Len(t,c.Dependencies(),2,"expected 2 dependencies for this chart, but got %d",len(c.Dependencies()))
t.Fatalf("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()))
require.Len(t,c.Dependencies(),2,"expected 2 dependencies for this chart, but got %d",len(c.Dependencies()))
t.Fatalf("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")
t.Fatal("expected a VCSInstaller")
}
iferr:=Install(i);err==nil{
err=Install(i)
t.Fatal("expected error for version does not exists, got none")
require.Error(t,err,"expected error for version does not exists, got none")
}elseifstrings.Contains(err.Error(),"Could not resolve host: github.com"){
ifstrings.Contains(err.Error(),"Could not resolve host: github.com"){
t.Skip("Unable to run test without Internet access")
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){
funcTestVCSInstallerUpdate(t*testing.T){
ensure.HelmHome(t)
ensure.HelmHome(t)
source:="https://github.com/adamreese/helm-env"
source:="https://github.com/adamreese/helm-env"
i,err:=NewForSource(source,"")
i,err:=NewForSource(source,"")
iferr!=nil{
require.NoError(t,err)
t.Fatalf("unexpected error: %s",err)
}
// ensure a VCSInstaller was returned
// ensure a VCSInstaller was returned
if_,ok:=i.(*VCSInstaller);!ok{
require.IsType(t,&VCSInstaller{},i,"expected a VCSInstaller")
t.Fatal("expected a VCSInstaller")
}
iferr:=Update(i);err==nil{
require.EqualErrorf(t,Update(i),"plugin does not exist","expected error for plugin does not exist")
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)
}
// Install plugin before update
// Install plugin before update
iferr:=Install(i);err!=nil{
err=Install(i)
ifstrings.Contains(err.Error(),"Could not resolve host: github.com"){
iferr!=nil&&strings.Contains(err.Error(),"Could not resolve host: github.com"){
t.Skip("Unable to run test without Internet access")
t.Skip("Unable to run test without Internet access")