- Add ex_slop credo plugin with all 40 checks - Remove DualKeyAccess patterns across codebase — atom-only access - Fix LengthInGuard, LengthComparison, ListLast, ReduceMapPut in lib/ - Disable LengthComparison for test files - Remove obvious comments and narrator comments (~50) - Add missing aliases for fully-qualified modules - Rewrite boilerplate docs in test/support - Add normalize_keys helpers at API boundaries
75 lines
1.8 KiB
Elixir
75 lines
1.8 KiB
Elixir
defmodule AprsmeWeb.ConnCase do
|
|
@moduledoc """
|
|
Test case for connection tests.
|
|
|
|
Relies on `Phoenix.ConnTest` and imports helpers for building common
|
|
data structures and querying the data layer.
|
|
|
|
When the test case interacts with the database, the SQL sandbox is enabled
|
|
so changes are reverted at the end of every test. PostgreSQL users can
|
|
run database tests asynchronously by setting `use AprsmeWeb.ConnCase, async: true`.
|
|
"""
|
|
|
|
use ExUnit.CaseTemplate
|
|
|
|
using do
|
|
quote do
|
|
# The default import for connections
|
|
use AprsmeWeb, :verified_routes
|
|
|
|
import Aprsme.MockHelpers
|
|
import AprsmeWeb.ConnCase
|
|
import Phoenix.ConnTest
|
|
import Phoenix.LiveViewTest
|
|
import Plug.Conn
|
|
|
|
alias Aprsme.Repo
|
|
|
|
# The default endpoint for testing
|
|
@endpoint AprsmeWeb.Endpoint
|
|
|
|
# Import conveniences for testing with connections
|
|
|
|
# The default import for Repo
|
|
|
|
# Helper for LiveView tests that may have duplicate IDs
|
|
def live_with_warn(conn, path) do
|
|
live(conn, path, on_error: :warn)
|
|
end
|
|
end
|
|
end
|
|
|
|
setup tags do
|
|
Aprsme.DataCase.setup_sandbox(tags)
|
|
{:ok, conn: Phoenix.ConnTest.build_conn()}
|
|
end
|
|
|
|
@doc """
|
|
A helper that sets up the test case.
|
|
|
|
use AprsmeWeb.ConnCase, async: true
|
|
|
|
"""
|
|
def setup_sandbox(_tags) do
|
|
Aprsme.MockHelpers.stub_packets_mock()
|
|
:ok
|
|
end
|
|
|
|
@doc """
|
|
A helper that logs in a user.
|
|
|
|
setup %{conn: conn} do
|
|
conn = log_in_user(conn, user)
|
|
{:ok, conn: conn}
|
|
end
|
|
|
|
"""
|
|
def log_in_user(conn, user) do
|
|
token = Aprsme.Accounts.generate_user_session_token(user)
|
|
|
|
conn
|
|
|> Phoenix.ConnTest.init_test_session(%{})
|
|
|> Plug.Conn.put_session(:user_token, token)
|
|
|> Plug.Conn.put_session(:live_socket_id, "users_sessions:#{Base.url_encode64(token)}")
|
|
end
|
|
end
|