require.ErrorContains(t,err,test.ErrorMsg,"validateChartVersion(%s) to return \"%s\", got no error",test.Version,test.ErrorMsg)
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)
assert.NoError(t,err,"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,err,test.ErrorMsg,"validateChartMaintainer(%s, %s) to return \"%s\", got no error",test.Name,test.Email,test.ErrorMsg)
require.ErrorContains(t,validateChartMaintainer(badChart),test.ErrorMsg,"validateChartMaintainer(%s, %s) to return \"%s\", got no error",test.Name,test.Email,test.ErrorMsg)
require.ErrorContains(t,err,"Valid extensions are .yaml, .yml, .tpl, or .txt","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)
require.Len(t,c.Dependencies(),2,"expected 2 dependencies for this chart, but got %d",len(c.Dependencies()))
err:=processDependencyEnabled(c,c.Values,"")
require.NoError(t,err,"expected no errors")
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")
t.Fatal("expected an error for non existing file, but got nil")
}
require.Error(t,RenameWithFallback(filepath.Join(dir,"does_not_exists"),filepath.Join(dir,"dst")),"expected an error for non existing file, but got nil")
require.EqualError(t,err,`invalid ownership metadata; label validation error: missing key "app.kubernetes.io/managed-by": must be set to "Helm"; annotation validation error: missing key "meta.helm.sh/release-name": must be set to "rel-a"; annotation validation error: missing key "meta.helm.sh/release-namespace": must be set to "ns-a"`)
require.EqualError(t,checkOwnership(deployFoo.Object,"rel-a","ns-a"),`invalid ownership metadata; label validation error: missing key "app.kubernetes.io/managed-by": must be set to "Helm"; annotation validation error: missing key "meta.helm.sh/release-name": must be set to "rel-a"; annotation validation error: missing key "meta.helm.sh/release-namespace": must be set to "ns-a"`)
// Set managed by label and verify annotation error message
require.EqualError(t,err,`invalid ownership metadata; annotation validation error: missing key "meta.helm.sh/release-name": must be set to "rel-a"; annotation validation error: missing key "meta.helm.sh/release-namespace": must be set to "ns-a"`)
require.EqualError(t,checkOwnership(deployFoo.Object,"rel-a","ns-a"),`invalid ownership metadata; annotation validation error: missing key "meta.helm.sh/release-name": must be set to "rel-a"; annotation validation error: missing key "meta.helm.sh/release-namespace": must be set to "ns-a"`)
// Set only the release name annotation and verify missing release namespace error message
require.EqualError(t,err,`invalid ownership metadata; annotation validation error: missing key "meta.helm.sh/release-namespace": must be set to "ns-a"`)
require.EqualError(t,checkOwnership(deployFoo.Object,"rel-a","ns-a"),`invalid ownership metadata; annotation validation error: missing key "meta.helm.sh/release-namespace": must be set to "ns-a"`)
// Set both release name and namespace annotations and verify no ownership errors
require.EqualError(t,err,`invalid ownership metadata; annotation validation error: key "meta.helm.sh/release-name" must equal "rel-b": current value is "rel-a"`)
require.EqualError(t,checkOwnership(deployFoo.Object,"rel-b","ns-a"),`invalid ownership metadata; annotation validation error: key "meta.helm.sh/release-name" must equal "rel-b": current value is "rel-a"`)
// Verify ownership error for wrong release namespace
require.EqualError(t,err,`invalid ownership metadata; annotation validation error: key "meta.helm.sh/release-namespace" must equal "ns-b": current value is "ns-a"`)
require.EqualError(t,checkOwnership(deployFoo.Object,"rel-a","ns-b"),`invalid ownership metadata; annotation validation error: key "meta.helm.sh/release-namespace" must equal "ns-b": current value is "ns-a"`)
assert.EqualError(t,err,`invalid ownership metadata; label validation error: key "app.kubernetes.io/managed-by" must equal "Helm": current value is "helm"`)
assert.EqualError(t,checkOwnership(deployFoo.Object,"rel-a","ns-a"),`invalid ownership metadata; label validation error: key "app.kubernetes.io/managed-by" must equal "Helm": current value is "helm"`)