diff --git a/test/logflare/logs/search_operations_test.exs b/test/logflare/logs/search_operations_test.exs index 636adea94..08d4a7ba6 100644 --- a/test/logflare/logs/search_operations_test.exs +++ b/test/logflare/logs/search_operations_test.exs @@ -3,6 +3,7 @@ defmodule Logflare.Logs.SearchOperationsTest do import Ecto.Query import Logflare.Utils.Guards + import Logflare.TestUtils alias Logflare.Backends alias Logflare.Backends.Adaptor.BigQueryAdaptor @@ -183,11 +184,11 @@ defmodule Logflare.Logs.SearchOperationsTest do end describe "postgres chart aggregation" do + setup_single_tenant(backend_type: :postgres) + setup %{user: user} do source = insert(:source, user: user) - stub(Backends, :get_default_backend, fn ^user -> %{type: :postgres} end) - base_so = @postgres_search_attrs |> Map.merge(%{source: source, type: :aggregates}) @@ -265,11 +266,11 @@ defmodule Logflare.Logs.SearchOperationsTest do end describe "postgres query defaults and rules" do + setup_single_tenant(backend_type: :postgres) + setup %{user: user} do source = insert(:source, user: user) - stub(Backends, :get_default_backend, fn ^user -> %{type: :postgres} end) - so = %{@postgres_search_attrs | source: source} |> SO.new() @@ -319,11 +320,11 @@ defmodule Logflare.Logs.SearchOperationsTest do end describe "postgres timestamp filter rules" do + setup_single_tenant(backend_type: :postgres) + setup %{user: user} do source = insert(:source, user: user) - stub(Backends, :get_default_backend, fn ^user -> %{type: :postgres} end) - base_so = @postgres_search_attrs |> Map.merge(%{ @@ -445,14 +446,14 @@ defmodule Logflare.Logs.SearchOperationsTest do end describe "postgres backend adaptor integration" do + setup_single_tenant(backend_type: :postgres) + setup %{user: user} do Mimic.copy(PostgresAdaptor) source = insert(:source, user: user) backend = build(:backend, type: :postgres) - stub(Backends, :get_default_backend, fn ^user -> backend end) - base_so = %{@postgres_search_attrs | source: source, query: from("test_table")} |> SO.new() @@ -493,31 +494,30 @@ defmodule Logflare.Logs.SearchOperationsTest do {:ok, QueryResult.new(rows, %{total_rows: length(rows)})} end) - PostgresAdaptor - |> expect(:ecto_to_sql, fn %Ecto.Query{}, [] -> - {:ok, {"SELECT * FROM test_table", ["param"]}} - end) - result_so = SearchOperations.do_query(base_so) - assert result_so.sql_string == "SELECT * FROM test_table" - assert result_so.sql_params == ["param"] assert result_so.rows == rows refute result_so.error end - test "do_query/1 stores postgres backend errors", %{backend: backend, base_so: base_so} do + test "do_query/1 propagates postgres backend errors", %{backend: backend, base_so: base_so} do Backends |> expect(:get_default_backend, fn _user -> backend end) PostgresAdaptor |> expect(:execute_query, fn ^backend, %Ecto.Query{}, [query_type: :search] -> - {:error, :postgres_failed} + raise Postgrex.Error, + postgres: %{ + code: "26000", + pg_code: :invalid_sql_statement_name, + message: "connection refused", + severity: "ERROR" + } end) - result_so = SearchOperations.do_query(base_so) - - assert result_so.error == :postgres_failed + assert_raise Postgrex.Error, fn -> + SearchOperations.do_query(base_so) + end end test "do_query/1 renames count to value for aggregates and process_query_result/1 adds datetime", @@ -536,11 +536,6 @@ defmodule Logflare.Logs.SearchOperationsTest do {:ok, QueryResult.new(rows, %{total_rows: length(rows)})} end) - PostgresAdaptor - |> expect(:ecto_to_sql, fn %Ecto.Query{}, [] -> - {:ok, {"SELECT count(*) FROM test_table", []}} - end) - result_so = %{base_so | type: :aggregates} |> SearchOperations.do_query()