mirror of
https://github.com/livebook-dev/livebook.git
synced 2024-11-15 20:37:55 +08:00
35 lines
1 KiB
Elixir
35 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, "/learn")
|
|
|
|
assert {:error, {:live_redirect, %{to: to}}} =
|
|
view
|
|
|> element(~s{#welcome-to-livebook a}, "Open notebook")
|
|
|> render_click()
|
|
|
|
assert to =~ "/sessions/"
|
|
|
|
{:ok, view, _} = live(conn, to)
|
|
assert render(view) =~ "Welcome to Livebook"
|
|
|
|
close_session_by_path(to)
|
|
end
|
|
|
|
test "link to a new notebook creates an empty session", %{conn: conn} do
|
|
assert {:error, {:live_redirect, %{to: to}}} = result = live(conn, "/learn/notebooks/new")
|
|
{:ok, view, _} = follow_redirect(result, conn)
|
|
|
|
assert render(view) =~ "Untitled notebook"
|
|
|
|
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
|