My app has a GenServer module that accesses to database.
But it can’t access to the updateded data on test.
Can this kind of scenario be tested?
defmodule MyGenServer do
use GenServer
def start_link(args) do
GenServer.start_link(__MODULE__, args, name: __MODULE__)
end
def init(_args) do
{:ok, []}
end
def list() do
GenServer.call(__MODULE__, :list)
end
def handle_call(:list, _from, state) do
my_models = MyApp.Repo.all(MyModel)
{:reply, my_models, state}
end
end
defmodule MyGenServerTest do
use ExUnit.Case
test "test" do
assert [] = MyGenServer.list()
MyApp.Repo.insert!(%MyModel{field: "good"})
assert [my_model] = MyGenServer.list() # failed with empty list!
end
end