ref(helm): expose Get for repository file

Get method is a useful shortcut that can be used
by other apps that use helm repo package.
pull/3478/head
Igor Zibarev 7 years ago
parent b5af54d44c
commit a8db3be02b

@ -116,12 +116,18 @@ func (r *RepoFile) Update(re ...*Entry) {
// Has returns true if the given name is already a repository name. // Has returns true if the given name is already a repository name.
func (r *RepoFile) Has(name string) bool { func (r *RepoFile) Has(name string) bool {
for _, rf := range r.Repositories { _, ok := r.Get(name)
if rf.Name == name { return ok
return true }
// Get returns entry by the given name if it exists.
func (r *RepoFile) Get(name string) (*Entry, bool) {
for _, entry := range r.Repositories {
if entry.Name == name {
return entry, true
} }
} }
return false return nil, false
} }
// Remove removes the entry from the list of repositories. // Remove removes the entry from the list of repositories.

@ -16,10 +16,12 @@ limitations under the License.
package repo package repo
import "testing" import (
import "io/ioutil" "io/ioutil"
import "os" "os"
import "strings" "strings"
"testing"
)
const testRepositoriesFile = "testdata/repositories.yaml" const testRepositoriesFile = "testdata/repositories.yaml"
@ -120,6 +122,43 @@ func TestNewPreV1RepositoriesFile(t *testing.T) {
} }
} }
func TestRepoFile_Get(t *testing.T) {
repo := NewRepoFile()
repo.Add(
&Entry{
Name: "first",
URL: "https://example.com/first",
Cache: "first-index.yaml",
},
&Entry{
Name: "second",
URL: "https://example.com/second",
Cache: "second-index.yaml",
},
&Entry{
Name: "third",
URL: "https://example.com/third",
Cache: "third-index.yaml",
},
&Entry{
Name: "fourth",
URL: "https://example.com/fourth",
Cache: "fourth-index.yaml",
},
)
name := "second"
entry, ok := repo.Get(name)
if !ok {
t.Fatalf("Expected repo entry %q to be found", name)
}
if entry.URL != "https://example.com/second" {
t.Fatalf("Expected repo URL to be %q but got %q", "https://example.com/second", entry.URL)
}
}
func TestRemoveRepository(t *testing.T) { func TestRemoveRepository(t *testing.T) {
sampleRepository := NewRepoFile() sampleRepository := NewRepoFile()
sampleRepository.Add( sampleRepository.Add(

Loading…
Cancel
Save