mirror of
https://github.com/livebook-dev/livebook.git
synced 2024-11-14 20:04:49 +08:00
31 lines
1 KiB
Elixir
31 lines
1 KiB
Elixir
defmodule LivebookWeb.LearnLiveTest do
|
|
use LivebookWeb.ConnCase, async: true
|
|
|
|
import Phoenix.LiveViewTest
|
|
|
|
test "link to introductory notebook correctly creates a new session", %{conn: conn} do
|
|
{:ok, view, _} = live(conn, ~p"/learn")
|
|
|
|
assert {:error, {:live_redirect, %{to: to}}} =
|
|
view
|
|
|> element(~s{#welcome-to-livebook a}, "Open notebook")
|
|
|> render_click()
|
|
|
|
assert to =~ "/sessions/"
|
|
|
|
# Note that this LV page is huge and the simulated rendering in
|
|
# LV tests is not heavily optimized. This LV receives events from
|
|
# concurrent tests (such as hub creation) and rendering is a big
|
|
# bottleneck, to the point where calling render(view) times out.
|
|
# That's why we only assert on the dead render HTML.
|
|
{:ok, _view, html} = live(conn, to)
|
|
assert html =~ "Welcome to Livebook"
|
|
|
|
close_session_by_path(to)
|
|
end
|
|
|
|
defp close_session_by_path("/sessions/" <> session_id) do
|
|
{:ok, session} = Livebook.Sessions.fetch_session(session_id)
|
|
Livebook.Session.close(session.pid)
|
|
end
|
|
end
|