dave0
Hi, I’m trying to test a live_file_input and everything seems to work, but I’m getting a weird error, specifically:
[error] Phoenix.LiveViewTest.UploadClient #PID<0.776.0> received unexpected message in handle_info/2: :garbage_collect
If I blow away my _build, I also get this error on the first run (but not subsequent runs):
[error] Phoenix.LiveViewTest.UploadClient #PID<0.7054.0> received unexpected message in handle_info/2: {:socket_close, #PID<0.7055.0>, {:shutdown, :closed}}
My form is simply the live_file_input along with a submit button. The error happens when submitting the form (render_submit). However, the test will continue and complete successfully.
How would I go about debugging this or getting rid of the error? Currently using version 0.15.4.
The only issue I could find that’s remotely related is the following, but that seems to be taken care of already:
https://github.com/phoenixframework/phoenix_live_view/issues/1269
The Test
defmodule MyAppWeb.Settings.ProfileLiveTest do
use MyAppWeb.ConnCase
import Phoenix.LiveViewTest
setup :register_and_log_in_user
test "GET /settings/profile/update_avatar", %{conn: conn} do
{:ok, index_live, html} = live(conn, Routes.settings_profile_path(conn, :index))
assert html =~ "gravatar"
refute html =~ "Progress:"
avatar = file_input(index_live, "#change-avatar-form", :avatar, [%{
last_modified: 1_594_171_879_000,
name: "elixir.png",
content: File.read!("test/support/files/elixir.png"),
size: 8_290,
type: "image/png"
}])
assert render_upload(avatar, "elixir.png") =~ "Progress:"
assert %{"elixir.png" => _channel_pid} = Phoenix.LiveViewTest.UploadClient.channel_pids(avatar)
submitted_form =
index_live
|> form("#change-avatar-form")
|> render_submit()
refute submitted_form =~ "gravatar"
end
end
Test Output (clean)
➜ mix test
21:59:21.548 [error] Phoenix.LiveViewTest.UploadClient #PID<0.7054.0> received unexpected message in handle_info/2: :garbage_collect
21:59:21.569 [error] Phoenix.LiveViewTest.UploadClient #PID<0.7054.0> received unexpected message in handle_info/2: {:socket_close, #PID<0.7055.0>, {:shutdown, :closed}}
.
Finished in 0.6 seconds
1 test, 0 failures
Randomized with seed 445784
Test Output
➜ mix test
21:44:48.667 [error] Phoenix.LiveViewTest.UploadClient #PID<0.776.0> received unexpected message in handle_info/2: :garbage_collect
.
Finished in 0.8 seconds
1 test, 0 failures
Randomized with seed 485533
Trending in Questions
Other Trending Topics
Categories:
Sub Categories:
Forums
Popular Tags
- #ecto
- #liveview
- #troubleshooting
- #learning-elixir
- #library
- #deployment
- #erlang
- #testing
- #genserver
- #mix
- #absinthe
- #remote-other
- #otp
- #plug
- #how-to-question
- #macros
- #postgres
- #elixirconf
- #channels
- #exunit
- #discussion
- #code-sync
- #podcasts
- #javascript
- #onsite
- #dialyzer
- #docker
- #authentication
- #umbrella
- #full-time-contract
- #podcasts-by-brainlid
- #ecto-query
- #ai
- #elixirconf-us
- #blog-post
- #elixir-ls
- #phoenix_html
- #iex
- #graphql
- #genstage
- #websockets
- #supervisor
- #advent-of-code
- #distillery
- #processes
- #api
- #forms
- #hex
- #security
- #metaprogramming










Showing Posts 1 to 6- Show Best Posts
- Show All (oldest first)
- Show All (newest first)
brandynbennett
I’m also experiencing this issue. Would like to able to test my submit logic after the upload is consumed, but have been tripped up by this issue.
APB9785
I’m experiencing the same issue. The test passes, but gives an error in red:
15:05:45.708 [error] Phoenix.LiveViewTest.UploadClient #PID<0.571.0> received unexpected message in handle_info/2: :garbage_collectThe code in question is mostly copy/paste from Phoenix.LiveViewTest.file_input/4:
Is this working as intended? If so, what is the official way of handling this kind of test so there is no error displayed?
mcrumm
The
:garbage_collectmessages should be suppressed as ofv0.15.5which was just releasedAPB9785
Indeed they are - thanks!
megalithic
Might this still be happening with LiveView 0.19.x? We’re hitting this with tests instrumenting UploadClient
hudsonbay
It still happens to me on: