diff --git a/api/datastore/datastoretest/test.go b/api/datastore/datastoretest/test.go index 8d3eef259..43aaca34f 100644 --- a/api/datastore/datastoretest/test.go +++ b/api/datastore/datastoretest/test.go @@ -727,6 +727,16 @@ func RunFnsTest(t *testing.T, dsf DataStoreFunc, rp ResourceProvider) { } else if !gendFns[2].EqualsWithAnnotationSubset(fns.Items[1]) { t.Fatalf("expected `func.Name` to be `%#v` but it was `%#v`", gendFns[2], fns.Items[1]) } + + fns, err = ds.GetFns(ctx, &models.FnFilter{AppID: testApp.ID, Name: f1.Name}) + if err != nil { + t.Fatalf("unexpected error %v", err) + } + if len(fns.Items) != 1 { + t.Fatalf("expected result count to be 1, got %d", len(fns.Items)) + } else if !f1.EqualsWithAnnotationSubset(fns.Items[0]) { + t.Fatalf("expected function list to contain function %s, got %#v", f1.Name, fns.Items[0].Name) + } }) t.Run("delete with empty fn name", func(t *testing.T) { diff --git a/api/datastore/sql/sql.go b/api/datastore/sql/sql.go index 955d3f132..9baa57e51 100644 --- a/api/datastore/sql/sql.go +++ b/api/datastore/sql/sql.go @@ -934,6 +934,9 @@ func buildFilterFnQuery(filter *models.FnFilter) (string, []interface{}, error) } args = where(&b, args, "name>?", string(s)) } + if filter.Name != "" { + args = where(&b, args, "name=?", filter.Name) + } fmt.Fprintf(&b, ` ORDER BY name ASC`) if filter.PerPage > 0 {