diff options
Diffstat (limited to 'test/support')
-rw-r--r-- | test/support/conn_case.ex | 17 | ||||
-rw-r--r-- | test/support/test_endpoint.ex | 25 | ||||
-rw-r--r-- | test/support/test_room_adapter.ex | 12 | ||||
-rw-r--r-- | test/support/test_router.ex | 10 | ||||
-rw-r--r-- | test/support/test_transaction_adapter.ex | 10 | ||||
-rw-r--r-- | test/support/test_user_adapter.ex | 12 |
6 files changed, 82 insertions, 4 deletions
diff --git a/test/support/conn_case.ex b/test/support/conn_case.ex index 478e03f..bc28d10 100644 --- a/test/support/conn_case.ex +++ b/test/support/conn_case.ex @@ -24,14 +24,23 @@ defmodule MatrixAppServiceWeb.ConnCase do import Phoenix.ConnTest import MatrixAppServiceWeb.ConnCase - alias MatrixAppServiceWeb.Router.Helpers, as: Routes + alias MatrixAppServiceWeb.TestRouter.Helpers, as: Routes # The default endpoint for testing - @endpoint MatrixAppServiceWeb.Endpoint + @endpoint MatrixAppServiceWeb.TestEndpoint end end - setup _tags do - {:ok, conn: Phoenix.ConnTest.build_conn()} + setup tags do + conn = + if tags[:authenticated] do + Phoenix.ConnTest.build_conn(:get, "/", %{ + "access_token" => Application.fetch_env!(:matrix_app_service, :homeserver_token) + }) + else + Phoenix.ConnTest.build_conn() + end + + {:ok, conn: conn} end end diff --git a/test/support/test_endpoint.ex b/test/support/test_endpoint.ex new file mode 100644 index 0000000..5112df8 --- /dev/null +++ b/test/support/test_endpoint.ex @@ -0,0 +1,25 @@ +defmodule MatrixAppServiceWeb.TestEndpoint do + use Phoenix.Endpoint, otp_app: :matrix_app_service + + # The session will be stored in the cookie and signed, + # this means its contents can be read but not tampered with. + # Set :encryption_salt if you would also like to encrypt it. + @session_options [ + store: :cookie, + key: "_matrix_app_service_key", + signing_salt: "zE7AHynD" + ] + + plug Plug.RequestId + # plug Plug.Telemetry, event_prefix: [:phoenix, :endpoint] + + plug Plug.Parsers, + parsers: [:urlencoded, :multipart, :json], + pass: ["*/*"], + json_decoder: Phoenix.json_library() + + plug Plug.MethodOverride + plug Plug.Head + plug Plug.Session, @session_options + plug MatrixAppServiceWeb.TestRouter +end diff --git a/test/support/test_room_adapter.ex b/test/support/test_room_adapter.ex new file mode 100644 index 0000000..d57d420 --- /dev/null +++ b/test/support/test_room_adapter.ex @@ -0,0 +1,12 @@ +defmodule MatrixAppService.TestRoomAdapter do + @behaviour MatrixAppService.Adapter.Room + + @impl MatrixAppService.Adapter.Room + def query_alias("#existing:homeserver") do + :ok + end + + def query_alias(_) do + nil + end +end diff --git a/test/support/test_router.ex b/test/support/test_router.ex new file mode 100644 index 0000000..3bbad03 --- /dev/null +++ b/test/support/test_router.ex @@ -0,0 +1,10 @@ +defmodule MatrixAppServiceWeb.TestRouter do + require MatrixAppServiceWeb.Router + + use Phoenix.Router + + import Plug.Conn + import Phoenix.Controller + + MatrixAppServiceWeb.Router.routes() +end diff --git a/test/support/test_transaction_adapter.ex b/test/support/test_transaction_adapter.ex new file mode 100644 index 0000000..c39371b --- /dev/null +++ b/test/support/test_transaction_adapter.ex @@ -0,0 +1,10 @@ +defmodule MatrixAppService.TestTransactionAdapter do + require Logger + @behaviour MatrixAppService.Adapter.Transaction + + @impl MatrixAppService.Adapter.Transaction + def new_event(%MatrixAppService.Event{}) do + Logger.error("got an event") + nil + end +end diff --git a/test/support/test_user_adapter.ex b/test/support/test_user_adapter.ex new file mode 100644 index 0000000..c402e0b --- /dev/null +++ b/test/support/test_user_adapter.ex @@ -0,0 +1,12 @@ +defmodule MatrixAppService.TestUserAdapter do + @behaviour MatrixAppService.Adapter.User + + @impl MatrixAppService.Adapter.User + def query_user("@existing:homeserver") do + :ok + end + + def query_user(_) do + nil + end +end |