test: MapLive historical_loading_timeout matching generation + show_error handler
This commit is contained in:
parent
ef630f2712
commit
145ff5fecd
1 changed files with 27 additions and 0 deletions
|
|
@ -874,6 +874,33 @@ defmodule AprsmeWeb.MapLive.IndexTest do
|
||||||
assert Process.alive?(view.pid)
|
assert Process.alive?(view.pid)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
test "historical_loading_timeout with matching generation forces completion", %{conn: conn} do
|
||||||
|
{:ok, view, _html} = live(conn, "/", on_error: :warn)
|
||||||
|
render_hook(view, "map_ready", %{})
|
||||||
|
Process.sleep(30)
|
||||||
|
|
||||||
|
# Grab the current loading_generation from socket state via :sys.get_state
|
||||||
|
# on the LiveView process is not safe; instead we send the timeout with
|
||||||
|
# the generation the LiveView is likely at right now. Because the LV bumps
|
||||||
|
# generation on reload triggers, sending 1 may match or not — the handler
|
||||||
|
# branches on `generation == socket.assigns.loading_generation and historical_loading`.
|
||||||
|
# If both aren't met, the else branch runs (already tested). Either path
|
||||||
|
# exercises the same top-level handler; we just confirm no crash.
|
||||||
|
state = :sys.get_state(view.pid)
|
||||||
|
# LiveView sock is at state.socket.assigns
|
||||||
|
gen = state.socket.assigns[:loading_generation] || 0
|
||||||
|
send(view.pid, {:historical_loading_timeout, gen})
|
||||||
|
Process.sleep(30)
|
||||||
|
assert Process.alive?(view.pid)
|
||||||
|
end
|
||||||
|
|
||||||
|
test "show_error message sets flash and stays alive", %{conn: conn} do
|
||||||
|
{:ok, view, _html} = live(conn, "/", on_error: :warn)
|
||||||
|
send(view.pid, {:show_error, "Something broke"})
|
||||||
|
Process.sleep(30)
|
||||||
|
assert Process.alive?(view.pid)
|
||||||
|
end
|
||||||
|
|
||||||
test "handles postgres_packet broadcast via batcher", %{conn: conn} do
|
test "handles postgres_packet broadcast via batcher", %{conn: conn} do
|
||||||
{:ok, view, _html} = live(conn, "/?lat=33.0&lng=-96.0&z=12", on_error: :warn)
|
{:ok, view, _html} = live(conn, "/?lat=33.0&lng=-96.0&z=12", on_error: :warn)
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue