Skip to content

Commit c7a6d20

Browse files
[repo-assist] Ignore unknown Lua search-filter results (#2930)
fix(query): ignore unknown search filter results Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 parent f433059 commit c7a6d20

2 files changed

Lines changed: 32 additions & 1 deletion

File tree

pkg/query/query_builder.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -397,7 +397,9 @@ func (s *SourceQueryBuilder) applySearchFilter(results []abstractResult) []abstr
397397

398398
filtered := make([]abstractResult, 0, len(refs))
399399
for _, ref := range refs {
400-
filtered = append(filtered, byRef[ref])
400+
if result, ok := byRef[ref]; ok {
401+
filtered = append(filtered, result)
402+
}
401403
}
402404

403405
return filtered

pkg/query/query_builder_searchfilter_test.go

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,3 +76,32 @@ func TestSourceQueryBuilderSearchFilterHook(t *testing.T) {
7676
"every result after the SearchFilter hook must be from aur")
7777
}
7878
}
79+
80+
func TestSourceQueryBuilderSearchFilterHookSkipsUnknownResults(t *testing.T) {
81+
t.Parallel()
82+
83+
e := settingslua.New()
84+
defer e.Close()
85+
86+
require.NoError(t, e.L.DoString(`
87+
yay.create_autocmd("SearchFilter", {
88+
callback = function(_)
89+
return {
90+
{ source = "aur", name = "known" },
91+
{ source = "aur", name = "unknown" },
92+
}
93+
end,
94+
})
95+
`))
96+
97+
builder := &SourceQueryBuilder{
98+
lua: e,
99+
logger: text.NewLogger(io.Discard, io.Discard, strings.NewReader(""), true, "test"),
100+
}
101+
filtered := builder.applySearchFilter([]abstractResult{
102+
{source: "aur", name: "known", description: "known package"},
103+
})
104+
105+
require.Len(t, filtered, 1)
106+
assert.Equal(t, "known", filtered[0].name)
107+
}

0 commit comments

Comments
 (0)