|
|
|
@ -249,6 +249,76 @@ func TestUpdateBeforeBuild(t *testing.T) {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// TestUpdateWithNoRepo is for the case of a dependency that has no repo listed.
|
|
|
|
|
// This happens when the dependency is in the charts directory and does not need
|
|
|
|
|
// to be fetched.
|
|
|
|
|
func TestUpdateWithNoRepo(t *testing.T) {
|
|
|
|
|
// Set up a fake repo
|
|
|
|
|
srv, err := repotest.NewTempServerWithCleanup(t, "testdata/*.tgz*")
|
|
|
|
|
if err != nil {
|
|
|
|
|
t.Fatal(err)
|
|
|
|
|
}
|
|
|
|
|
defer srv.Stop()
|
|
|
|
|
if err := srv.LinkIndices(); err != nil {
|
|
|
|
|
t.Fatal(err)
|
|
|
|
|
}
|
|
|
|
|
dir := func(p ...string) string {
|
|
|
|
|
return filepath.Join(append([]string{srv.Root()}, p...)...)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Setup the dependent chart
|
|
|
|
|
d := &chart.Chart{
|
|
|
|
|
Metadata: &chart.Metadata{
|
|
|
|
|
Name: "dep-chart",
|
|
|
|
|
Version: "0.1.0",
|
|
|
|
|
APIVersion: "v1",
|
|
|
|
|
},
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Save a chart with the dependency
|
|
|
|
|
c := &chart.Chart{
|
|
|
|
|
Metadata: &chart.Metadata{
|
|
|
|
|
Name: "with-dependency",
|
|
|
|
|
Version: "0.1.0",
|
|
|
|
|
APIVersion: "v2",
|
|
|
|
|
Dependencies: []*chart.Dependency{{
|
|
|
|
|
Name: d.Metadata.Name,
|
|
|
|
|
Version: "0.1.0",
|
|
|
|
|
}},
|
|
|
|
|
},
|
|
|
|
|
}
|
|
|
|
|
if err := chartutil.SaveDir(c, dir()); err != nil {
|
|
|
|
|
t.Fatal(err)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Save dependent chart into the parents charts directory. If the chart is
|
|
|
|
|
// not in the charts directory Helm will return an error that it is not
|
|
|
|
|
// found.
|
|
|
|
|
if err := chartutil.SaveDir(d, dir(c.Metadata.Name, "charts")); err != nil {
|
|
|
|
|
t.Fatal(err)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Set-up a manager
|
|
|
|
|
b := bytes.NewBuffer(nil)
|
|
|
|
|
g := getter.Providers{getter.Provider{
|
|
|
|
|
Schemes: []string{"http", "https"},
|
|
|
|
|
New: getter.NewHTTPGetter,
|
|
|
|
|
}}
|
|
|
|
|
m := &Manager{
|
|
|
|
|
ChartPath: dir(c.Metadata.Name),
|
|
|
|
|
Out: b,
|
|
|
|
|
Getters: g,
|
|
|
|
|
RepositoryConfig: dir("repositories.yaml"),
|
|
|
|
|
RepositoryCache: dir(),
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Test the update
|
|
|
|
|
err = m.Update()
|
|
|
|
|
if err != nil {
|
|
|
|
|
t.Fatal(err)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// This function is the skeleton test code of failing tests for #6416 and #6871 and bugs due to #5874.
|
|
|
|
|
//
|
|
|
|
|
// This function is used by below tests that ensures success of build operation
|
|
|
|
|