This is an automated email from the ASF dual-hosted git repository.

rnewson pushed a commit to branch group-search-elixir-test
in repository https://gitbox.apache.org/repos/asf/couchdb.git

commit c3c0a7037447b2e977ebb19989a39cbb18184ffb
Author: Robert Newson <[email protected]>
AuthorDate: Mon Mar 9 17:49:48 2026 +0000

    add group test for search
---
 test/elixir/test/config/search.elixir |  1 +
 test/elixir/test/search_test.exs      | 22 ++++++++++++++++++++++
 2 files changed, 23 insertions(+)

diff --git a/test/elixir/test/config/search.elixir 
b/test/elixir/test/config/search.elixir
index a3ef2882b..9e998cd29 100644
--- a/test/elixir/test/config/search.elixir
+++ b/test/elixir/test/config/search.elixir
@@ -32,6 +32,7 @@
     "facet counts, empty",
     "facet ranges, empty",
     "facet ranges, non-empty",
+    "group search",
     "timeouts do not expose internal state"
   ],
   "BasicTextTest": [
diff --git a/test/elixir/test/search_test.exs b/test/elixir/test/search_test.exs
index ad5a13dbb..edf6858cf 100644
--- a/test/elixir/test/search_test.exs
+++ b/test/elixir/test/search_test.exs
@@ -306,6 +306,28 @@ defmodule SearchTest do
     assert ranges == %{"price" => %{}}
   end
 
+  @tag :with_db
+  test "group search", context do
+    db_name = context[:db_name]
+    create_search_docs(db_name)
+    create_ddoc(db_name)
+
+    url = "/#{db_name}/_design/inventory/_search/fruits"
+    ranges = %{"price" => %{}}
+    resp = Couch.get(url, query: %{q: "*:*", group_field: "state"})
+    assert_on_status(resp, 200, "Fail to do search.")
+
+    %{:body => %{"groups" => groups}} = resp
+    assert length(groups) == 3
+    Enum.each(groups, fn g ->
+      case g["by"] do
+        "new" -> assert g["total_rows"] == 2
+        "old" -> assert g["total_rows"] == 1
+        "unknown" -> assert g["total_rows"] == 1
+      end
+    end)
+  end
+
   @tag :with_db
   test "timeouts do not expose internal state", context do
     db_name = context[:db_name]

Reply via email to