returnfmt.Errorf("chart name %q is not a valid Kubernetes name: use lowercase letters, digits, hyphens, and dots only (e.g. my-chart, my.chart)",cf.Name)
t.Error("validateChartName to return a linter error, got no error")
t.Error("validateChartName to return a linter error for empty name, got no error")
}
err=validateChartName(badChartName)
iferr==nil{
t.Error("expected validateChartName to return a linter error for an invalid name, got no error")
invalidNames:=[]struct{
namestring
reasonstring
}{
{"../badchartname","path traversal"},
{"MyInvalidChart","uppercase letters"},
{"my_chart","underscore"},
{"-my-chart","leading hyphen"},
{"my-chart-","trailing hyphen"},
{"my chart","space"},
}
for_,tc:=rangeinvalidNames{
meta:=&chart.Metadata{Name:tc.name}
iferr:=validateChartName(meta);err==nil{
t.Errorf("expected validateChartName to return error for %q (%s), got nil",tc.name,tc.reason)
}
}
validNames:=[]string{"my-chart","my.chart","mychart","my-chart-v2","1-chart","myinvalidchart"}// "myinvalidchart" is the lowercase twin of the invalid "MyInvalidChart", confirming uppercase triggers failure
for_,name:=rangevalidNames{
meta:=&chart.Metadata{Name:name}
iferr:=validateChartName(meta);err!=nil{
t.Errorf("expected validateChartName to return no error for %q, got: %v",name,err)