Skip to content

Commit 8a62ff6

Browse files
authored
Merge pull request #374 from gwincr11/cg-changeset-regression
[WIP]: Fix changeset regression
2 parents f4bf64a + 762520f commit 8a62ff6

File tree

3 files changed

+49
-1
lines changed

3 files changed

+49
-1
lines changed

test/custom_changeset.exs

+17-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ defmodule ExAdminTest.ControllerTest do
33
require Logger
44

55
import TestExAdmin.TestHelpers
6-
alias TestExAdmin.{Noid, User, Product, Simple}
6+
alias TestExAdmin.{Noid, Map, User, Product, Simple}
77

88
setup do
99
:ok = Ecto.Adapters.SQL.Sandbox.checkout(TestExAdmin.Repo)
@@ -29,4 +29,20 @@ defmodule ExAdminTest.ControllerTest do
2929

3030
TestExAdmin.Simple.stop
3131
end
32+
33+
test "calls the create changeset when no custom change set is specified and in create path" do
34+
TestExAdmin.Maps.start_link
35+
conn = post build_conn(), admin_resource_path(TestExAdmin.Maps, :create), map: %{}
36+
assert TestExAdmin.Maps.last_changeset == "create_changeset"
37+
38+
TestExAdmin.Map.stop
39+
end
40+
41+
test "calls the update changeset when no custom change set is specified and in update path" do
42+
TestExAdmin.Maps.start_link
43+
conn = post build_conn(), admin_resource_path(TestExAdmin.Maps, :create), map: %{}
44+
assert TestExAdmin.Maps.last_changeset == "create_changeset"
45+
46+
TestExAdmin.Maps.stop
47+
end
3248
end

test/support/admin_resources.exs

+4
Original file line numberDiff line numberDiff line change
@@ -128,6 +128,10 @@ defmodule TestExAdmin.ExAdmin.Simple do
128128
end
129129
end
130130

131+
defmodule TestExAdmin.ExAdmin.Maps do
132+
use ExAdmin.Register
133+
end
134+
131135
defmodule TestExAdmin.ExAdmin.UUIDSchema do
132136
use ExAdmin.Register
133137

test/support/schema.exs

+28
Original file line numberDiff line numberDiff line change
@@ -345,10 +345,38 @@ end
345345

346346
defmodule TestExAdmin.Maps do
347347
use Ecto.Schema
348+
import Ecto.Changeset
348349

349350
schema "maps" do
350351
field :name, :string
351352
field :addresses, {:array, :map}
352353
field :stats, :map
353354
end
355+
356+
@fields ~w(name addresses stats)
357+
358+
def start_link do
359+
Agent.start_link(fn -> nil end, name: __MODULE__)
360+
end
361+
362+
def create_changeset(model, params \\ %{}) do
363+
IO.inspect "In create"
364+
Agent.update(__MODULE__, fn (_v) -> "create_changeset" end)
365+
model
366+
|> cast(params, @fields)
367+
end
368+
369+
def update_update(model, params \\ %{}) do
370+
Agent.update(__MODULE__, fn (_v) -> "update_changeset" end)
371+
model
372+
|> cast(params, @fields)
373+
end
374+
375+
def last_changeset do
376+
Agent.get(__MODULE__, fn changeset -> changeset end)
377+
end
378+
379+
def stop do
380+
Agent.stop(__MODULE__)
381+
end
354382
end

0 commit comments

Comments
 (0)