Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
45 changes: 20 additions & 25 deletions test/logflare/logs/search_operations_test.exs
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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})
Expand Down Expand Up @@ -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()
Expand Down Expand Up @@ -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(%{
Expand Down Expand Up @@ -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()
Expand Down Expand Up @@ -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",
Expand All @@ -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()
Expand Down
Loading