Friendly error message for non-existent Chart.yaml file

Signed-off-by: Anshul Verma <anshulvermapatel@gmail.com>
pull/7006/head
Anshul Verma 6 years ago
parent 84de17e7e5
commit 1e1b3740ac

@ -194,7 +194,7 @@ icon: https://example.com/64x64.png
if _, err = LoadFiles([]*BufferedFile{}); err == nil { if _, err = LoadFiles([]*BufferedFile{}); err == nil {
t.Fatal("Expected err to be non-nil") t.Fatal("Expected err to be non-nil")
} }
if err.Error() != "validation: chart.metadata is required" { if err.Error() != "validation: Chart.yaml file is missing" {
t.Errorf("Expected chart metadata missing error, got '%s'", err.Error()) t.Errorf("Expected chart metadata missing error, got '%s'", err.Error())
} }
} }
@ -268,7 +268,7 @@ func TestLoadInvalidArchive(t *testing.T) {
{"illegal-name.tgz", "./.", "chart illegally contains content outside the base directory"}, {"illegal-name.tgz", "./.", "chart illegally contains content outside the base directory"},
{"illegal-name2.tgz", "/./.", "chart illegally contains content outside the base directory"}, {"illegal-name2.tgz", "/./.", "chart illegally contains content outside the base directory"},
{"illegal-name3.tgz", "missing-leading-slash", "chart illegally contains content outside the base directory"}, {"illegal-name3.tgz", "missing-leading-slash", "chart illegally contains content outside the base directory"},
{"illegal-name4.tgz", "/missing-leading-slash", "validation: chart.metadata is required"}, {"illegal-name4.tgz", "/missing-leading-slash", "validation: Chart.yaml file is missing"},
{"illegal-abspath.tgz", "//foo", "chart illegally contains absolute paths"}, {"illegal-abspath.tgz", "//foo", "chart illegally contains absolute paths"},
{"illegal-abspath2.tgz", "///foo", "chart illegally contains absolute paths"}, {"illegal-abspath2.tgz", "///foo", "chart illegally contains absolute paths"},
{"illegal-abspath3.tgz", "\\\\foo", "chart illegally contains absolute paths"}, {"illegal-abspath3.tgz", "\\\\foo", "chart illegally contains absolute paths"},
@ -302,7 +302,7 @@ func TestLoadInvalidArchive(t *testing.T) {
illegalChart = filepath.Join(tmpdir, "abs-path2.tgz") illegalChart = filepath.Join(tmpdir, "abs-path2.tgz")
writeTar(illegalChart, "files/whatever.yaml", []byte("hello: world")) writeTar(illegalChart, "files/whatever.yaml", []byte("hello: world"))
_, err = Load(illegalChart) _, err = Load(illegalChart)
if err.Error() != "validation: chart.metadata is required" { if err.Error() != "validation: Chart.yaml file is missing" {
t.Error(err) t.Error(err)
} }

@ -67,7 +67,7 @@ type Metadata struct {
// Validate checks the metadata for known issues, returning an error if metadata is not correct // Validate checks the metadata for known issues, returning an error if metadata is not correct
func (md *Metadata) Validate() error { func (md *Metadata) Validate() error {
if md == nil { if md == nil {
return ValidationError("chart.metadata is required") return ValidationError("Chart.yaml file is missing")
} }
if md.APIVersion == "" { if md.APIVersion == "" {
return ValidationError("chart.metadata.apiVersion is required") return ValidationError("chart.metadata.apiVersion is required")

@ -0,0 +1,28 @@
/*
Copyright The Helm Authors.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
package chart
import "testing"
func TestValidate(t *testing.T) {
var metadata *Metadata = nil
error := metadata.Validate()
errorMessage := "validation: Chart.yaml file is missing"
if error.Error() != errorMessage {
t.Errorf("The error message is other than '%s'", errorMessage)
}
}
Loading…
Cancel
Save