diff --git a/internal/repos/find.go b/internal/repos/find.go index e080270..7532f1f 100644 --- a/internal/repos/find.go +++ b/internal/repos/find.go @@ -13,6 +13,10 @@ func FindPkgs(gdb *sqlx.DB, pkgs []string) (map[string][]db.Package, []string, e notFound := []string(nil) for _, pkgName := range pkgs { + if pkgName == "" { + continue + } + result, err := db.GetPkgs(gdb, "name LIKE ?", pkgName) if err != nil { return nil, nil, err diff --git a/internal/repos/find_test.go b/internal/repos/find_test.go index c28826c..2d30123 100644 --- a/internal/repos/find_test.go +++ b/internal/repos/find_test.go @@ -67,3 +67,69 @@ func TestFindPkgs(t *testing.T) { } } } + +func TestFindPkgsEmpty(t *testing.T) { + gdb, err := sqlx.Open("sqlite", ":memory:") + if err != nil { + t.Fatalf("Expected no error, got %s", err) + } + defer gdb.Close() + + err = db.Init(gdb) + if err != nil { + t.Fatalf("Expected no error, got %s", err) + } + + setCfgDirs(t) + defer removeCacheDir(t) + + err = db.InsertPackage(gdb, db.Package{ + Name: "test1", + Repository: "default", + Version: "0.0.1", + Release: 1, + Description: "Test package 1", + Provides: db.NewJSON([]string{""}), + }) + if err != nil { + t.Fatalf("Expected no error, got %s", err) + } + + err = db.InsertPackage(gdb, db.Package{ + Name: "test2", + Repository: "default", + Version: "0.0.1", + Release: 1, + Description: "Test package 2", + Provides: db.NewJSON([]string{"test"}), + }) + if err != nil { + t.Fatalf("Expected no error, got %s", err) + } + + found, notFound, err := repos.FindPkgs(gdb, []string{"test", ""}) + if err != nil { + t.Fatalf("Expected no error, got %s", err) + } + + if len(notFound) != 0 { + t.Errorf("Expected all packages to be found") + } + + if len(found) != 1 { + t.Errorf("Expected 1 package found, got %d", len(found)) + } + + testPkgs, ok := found["test"] + if !ok { + t.Fatalf("Expected 'test' packages to be found") + } + + if len(testPkgs) != 1 { + t.Errorf("Expected one 'test' package to be found, got %d", len(testPkgs)) + } + + if testPkgs[0].Name != "test2" { + t.Errorf("Expected 'test2' package, got '%s'", testPkgs[0].Name) + } +}