From 3555a3d6e6f90fe96f128bb440952b087de23cc7 Mon Sep 17 00:00:00 2001 From: Greg Rychlewski Date: Tue, 29 Aug 2023 11:38:43 -0400 Subject: [PATCH 1/2] add connection tests for selecting binary uuids --- .../sqlite3/connection/binary_uuid.exs | 38 +++++++++++++++++++ test/ecto/integration/uuid_test.exs | 2 +- 2 files changed, 39 insertions(+), 1 deletion(-) create mode 100644 test/ecto/adapters/sqlite3/connection/binary_uuid.exs diff --git a/test/ecto/adapters/sqlite3/connection/binary_uuid.exs b/test/ecto/adapters/sqlite3/connection/binary_uuid.exs new file mode 100644 index 0000000..2aa2f50 --- /dev/null +++ b/test/ecto/adapters/sqlite3/connection/binary_uuid.exs @@ -0,0 +1,38 @@ +defmodule Ecto.Adapters.SQLite3.Connection.BinaryUUIDTest do + use ExUnit.Case, async: false + + import Ecto.Query + import Ecto.Adapters.SQLite3.TestHelpers + + alias EctoSQLite3.Schemas.Schema + + setup_all do + Application.put_env(:ecto_sqlite3, :uuid_type, :binary) + Application.put_env(:ecto_sqlite3, :binary_id_type, :binary) + + on_exit(fn -> + Application.put_env(:ecto_sqlite3, :uuid_type, :string) + Application.put_env(:ecto_sqlite3, :binary_id_type, :string) + end) + end + + describe "select" do + test "casting uuid" do + query = + Schema + |> select([], type(^"601d74e4-a8d3-4b6e-8365-eddb4c893327", Ecto.UUID)) + |> plan() + + assert ~s{SELECT ? FROM "schema" AS s0} == all(query) + end + + test "casting binary_ids" do + query = + Schema + |> select([], type(^"601d74e4-a8d3-4b6e-8365-eddb4c893327", :binary_id)) + |> plan() + + assert ~s{SELECT ? FROM "schema" AS s0} == all(query) + end + end +end diff --git a/test/ecto/integration/uuid_test.exs b/test/ecto/integration/uuid_test.exs index c024b2b..fbfa308 100644 --- a/test/ecto/integration/uuid_test.exs +++ b/test/ecto/integration/uuid_test.exs @@ -58,8 +58,8 @@ defmodule Ecto.Integration.UUIDTest do end test "handles binary_id casting with binary format" do - Application.put_env(:ecto_sqlite3, :uuid_type, :binary) Application.put_env(:ecto_sqlite3, :binary_id_type, :binary) + Application.put_env(:ecto_sqlite3, :uuid_type, :binary) bid = Ecto.UUID.generate() TestRepo.insert!(%Product{bid: bid, external_id: bid}) From 12821589aad08d5a1a5ffe5f82f2d1d23464148f Mon Sep 17 00:00:00 2001 From: Greg Rychlewski Date: Tue, 29 Aug 2023 11:42:44 -0400 Subject: [PATCH 2/2] undo rebase change --- test/ecto/integration/uuid_test.exs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/ecto/integration/uuid_test.exs b/test/ecto/integration/uuid_test.exs index fbfa308..c024b2b 100644 --- a/test/ecto/integration/uuid_test.exs +++ b/test/ecto/integration/uuid_test.exs @@ -58,8 +58,8 @@ defmodule Ecto.Integration.UUIDTest do end test "handles binary_id casting with binary format" do - Application.put_env(:ecto_sqlite3, :binary_id_type, :binary) Application.put_env(:ecto_sqlite3, :uuid_type, :binary) + Application.put_env(:ecto_sqlite3, :binary_id_type, :binary) bid = Ecto.UUID.generate() TestRepo.insert!(%Product{bid: bid, external_id: bid})