···11defmodule Atvouch.Tangled.ClientTest do
22 use ExUnit.Case
33+ import Atvouch.Test.Helpers
3445 alias Atvouch.Tangled.Client
5667 setup do
77- # Start Tangled server
88- {tangled_pid, tangled_port, state_agent} =
99- Atvouch.Test.FakeTangledServer.start(self())
1010-1111- # Start PDS server with callback pointing to tangled
1212- {pds_pid, pds_port} =
1313- Atvouch.Test.FakePdsServer.start(self(),
1414- expected_username: "bot.test",
1515- expected_password: "test-password",
1616- callback_url: "http://127.0.0.1:#{tangled_port}/oauth/callback?code=test&state=test"
1717- )
1818-1919- # Set PDS URL on tangled
2020- Atvouch.Test.FakeTangledServer.set_pds_url(state_agent, "http://127.0.0.1:#{pds_port}")
2121-2222- # Start session GenServer
2323- {:ok, session_pid} =
2424- Atvouch.Tangled.Session.start_link(
2525- handle: "bot.test",
2626- password: "test-password",
2727- tangled_url: "http://127.0.0.1:#{tangled_port}",
2828- name: :"client_test_session_#{tangled_port}"
2929- )
88+ servers = start_tangled_pds_session(self(),
99+ session_name: :"client_test_session_#{System.unique_integer([:positive])}"
1010+ )
30113112 on_exit(fn ->
3232- for pid <- [pds_pid, tangled_pid] do
3333- try do
3434- Supervisor.stop(pid, :normal, 1_000)
3535- catch
3636- :exit, _ -> :ok
3737- end
3838- end
1313+ for pid <- [servers.pds_pid, servers.tangled_pid],
1414+ do: safe_stop_supervisor(pid)
39154040- try do
4141- GenServer.stop(session_pid, :normal, 1_000)
4242- catch
4343- :exit, _ -> :ok
4444- end
1616+ safe_stop_genserver(servers.session_pid)
4517 end)
46184719 {:ok,
4848- tangled_port: tangled_port,
4949- session: session_pid,
5050- state_agent: state_agent}
2020+ tangled_port: servers.tangled_port,
2121+ session: servers.session_pid,
2222+ state_agent: servers.state_agent}
5123 end
52245325 test "successfully posts a comment", %{session: session} do
+5-30
appview/test/atvouch/tangled/session_test.exs
···11defmodule Atvouch.Tangled.SessionTest do
22 use ExUnit.Case
33+ import Atvouch.Test.Helpers
3445 alias Atvouch.Tangled.Session
5667 setup do
77- # Start Tangled server (PDS URL will be set after PDS starts)
88- {tangled_pid, tangled_port, state_agent} =
99- Atvouch.Test.FakeTangledServer.start(self())
1010-1111- # Start PDS server with callback URL pointing to tangled
1212- {pds_pid, pds_port} =
1313- Atvouch.Test.FakePdsServer.start(self(),
1414- expected_username: "bot.test",
1515- expected_password: "test-password",
1616- callback_url: "http://127.0.0.1:#{tangled_port}/oauth/callback?code=test-code&state=test-state"
1717- )
1818-1919- # Now set the PDS URL on the tangled server
2020- Atvouch.Test.FakeTangledServer.set_pds_url(state_agent, "http://127.0.0.1:#{pds_port}")
88+ servers = start_tangled_pds(self())
2192210 on_exit(fn ->
2323- for pid <- [pds_pid, tangled_pid] do
2424- try do
2525- Supervisor.stop(pid, :normal, 1_000)
2626- catch
2727- :exit, _ -> :ok
2828- end
2929- end
1111+ for pid <- [servers.pds_pid, servers.tangled_pid],
1212+ do: safe_stop_supervisor(pid)
3013 end)
31143232- {:ok, tangled_port: tangled_port}
1515+ {:ok, tangled_port: servers.tangled_port}
3316 end
34173518 test "successful login returns cookies", %{tangled_port: tangled_port} do
···1058810689 # GenServer should still be alive
10790 assert Process.alive?(pid)
108108- end
109109-110110- defp drain_messages do
111111- receive do
112112- _ -> drain_messages()
113113- after
114114- 50 -> :ok
115115- end
11691 end
11792end
+2-5
appview/test/atvouch/tap/socket_test.exs
···11defmodule Atvouch.Tap.SocketTest do
22 use ExUnit.Case
33+ import Atvouch.Test.Helpers
3445 defmodule TestHandler do
56 @behaviour Atvouch.Tap.Handler
···2829 {server_pid, port} = Atvouch.Test.FakeTapServer.start(self())
29303031 on_exit(fn ->
3131- try do
3232- Supervisor.stop(server_pid, :normal, 1_000)
3333- catch
3434- :exit, _ -> :ok
3535- end
3232+ safe_stop_supervisor(server_pid)
3633 end)
37343835 {:ok, port: port}