chore: sync from fn-registry agent
This commit is contained in:
@@ -0,0 +1,46 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"os"
|
||||
"strings"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestPkgSearch_FakeOutput(t *testing.T) {
|
||||
fake := "vim - Vi IMproved - enhanced vi editor\nvim-tiny - Vi IMproved - enhanced vi editor - compact version"
|
||||
os.Setenv("PKG_FAKE_OUTPUT", fake)
|
||||
defer os.Unsetenv("PKG_FAKE_OUTPUT")
|
||||
|
||||
cap := &Capability{Name: "pkg.search"}
|
||||
res, code, err := runPkgSearch(cap, map[string]any{"query": "vim"})
|
||||
if err != nil {
|
||||
t.Fatalf("search: %v", err)
|
||||
}
|
||||
if code != 0 {
|
||||
t.Fatalf("code: %d", code)
|
||||
}
|
||||
m := res.(map[string]any)
|
||||
pkgs := m["packages"].([]map[string]any)
|
||||
if len(pkgs) != 2 {
|
||||
t.Fatalf("expected 2 pkgs, got %d", len(pkgs))
|
||||
}
|
||||
if pkgs[0]["name"] != "vim" {
|
||||
t.Fatalf("name mismatch: %v", pkgs[0]["name"])
|
||||
}
|
||||
}
|
||||
|
||||
func TestPkgSearch_InvalidQuery(t *testing.T) {
|
||||
cap := &Capability{Name: "pkg.search"}
|
||||
_, _, err := runPkgSearch(cap, map[string]any{"query": "vim; rm -rf /"})
|
||||
if err == nil || !strings.Contains(err.Error(), "invalid char") {
|
||||
t.Fatalf("expected invalid char, got %v", err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestPkgSearch_NoQuery(t *testing.T) {
|
||||
cap := &Capability{Name: "pkg.search"}
|
||||
_, _, err := runPkgSearch(cap, map[string]any{})
|
||||
if err == nil || !strings.Contains(err.Error(), "query required") {
|
||||
t.Fatalf("expected query required, got %v", err)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user