Implement Credo software design suggestions

This commit is contained in:
rustra
2020-01-28 19:18:33 +01:00
parent a781c2d3e2
commit 97651e88e9
37 changed files with 146 additions and 97 deletions

View File

@@ -22,6 +22,8 @@ defmodule Mobilizon.Federation.ActivityPub.TransmogrifierTest do
alias Mobilizon.GraphQL.API
alias Mobilizon.Web.Endpoint
setup_all do
HTTPoison.start()
end
@@ -961,7 +963,7 @@ defmodule Mobilizon.Federation.ActivityPub.TransmogrifierTest do
}
expected_tag = %{
"href" => Mobilizon.Web.Endpoint.url() <> "/tags/2hu",
"href" => Endpoint.url() <> "/tags/2hu",
"type" => "Hashtag",
"name" => "#2hu"
}
@@ -996,7 +998,7 @@ defmodule Mobilizon.Federation.ActivityPub.TransmogrifierTest do
{:ok, activity, _} = API.Comments.create_comment(%{actor_id: actor.id, text: "#2hu"})
expected_tag = %{
"href" => Mobilizon.Web.Endpoint.url() <> "/tags/2hu",
"href" => Endpoint.url() <> "/tags/2hu",
"type" => "Hashtag",
"name" => "#2hu"
}

View File

@@ -11,6 +11,8 @@ defmodule Mobilizon.Federation.WebFingerTest do
alias Mobilizon.Federation.WebFinger
alias Mobilizon.Web.Endpoint
@mastodon_account "tcit@social.tcit.fr"
@mastodon_account_username "tcit"
@pleroma_account "lain@pleroma.soykaf.com"
@@ -24,7 +26,7 @@ defmodule Mobilizon.Federation.WebFingerTest do
test "returns a link to the xml lrdd" do
host_info = WebFinger.host_meta()
assert String.contains?(host_info, Mobilizon.Web.Endpoint.url())
assert String.contains?(host_info, Endpoint.url())
end
end
@@ -34,7 +36,7 @@ defmodule Mobilizon.Federation.WebFingerTest do
{:ok, result} =
WebFinger.webfinger(
"#{actor.preferred_username}@#{Mobilizon.Web.Endpoint.host()}",
"#{actor.preferred_username}@#{Endpoint.host()}",
"JSON"
)

View File

@@ -9,6 +9,8 @@ defmodule Mobilizon.GraphQL.Resolvers.PersonTest do
alias Mobilizon.GraphQL.AbsintheHelpers
alias Mobilizon.Web.Endpoint
@non_existent_username "nonexistent"
describe "Person Resolver" do
@@ -120,8 +122,7 @@ defmodule Mobilizon.GraphQL.Resolvers.PersonTest do
assert json_response(res, 200)["data"]["loggedPerson"]["preferredUsername"] ==
actor.preferred_username
assert json_response(res, 200)["data"]["loggedPerson"]["avatar"]["url"] =~
Mobilizon.Web.Endpoint.url()
assert json_response(res, 200)["data"]["loggedPerson"]["avatar"]["url"] =~ Endpoint.url()
end
test "create_person/3 creates a new identity", context do
@@ -255,7 +256,7 @@ defmodule Mobilizon.GraphQL.Resolvers.PersonTest do
"The beautiful atlantic way"
assert json_response(res, 200)["data"]["createPerson"]["banner"]["url"] =~
Mobilizon.Web.Endpoint.url() <> "/media/"
Endpoint.url() <> "/media/"
end
test "update_person/3 updates an existing identity", context do
@@ -325,7 +326,7 @@ defmodule Mobilizon.GraphQL.Resolvers.PersonTest do
assert res_person["banner"]["id"]
assert res_person["banner"]["name"] == "The beautiful atlantic way"
assert res_person["banner"]["url"] =~ Mobilizon.Web.Endpoint.url() <> "/media/"
assert res_person["banner"]["url"] =~ Endpoint.url() <> "/media/"
end
test "update_person/3 should fail to update a not owned identity", context do

View File

@@ -8,6 +8,8 @@ defmodule Mobilizon.GraphQL.Resolvers.PictureTest do
alias Mobilizon.GraphQL.AbsintheHelpers
alias Mobilizon.Web.Endpoint
setup %{conn: conn} do
user = insert(:user)
actor = insert(:actor, user: user)
@@ -42,8 +44,7 @@ defmodule Mobilizon.GraphQL.Resolvers.PictureTest do
assert json_response(res, 200)["data"]["picture"]["size"] == 13_120
assert json_response(res, 200)["data"]["picture"]["url"] =~
Mobilizon.Web.Endpoint.url()
assert json_response(res, 200)["data"]["picture"]["url"] =~ Endpoint.url()
end
test "picture/3 returns nothing on a non-existent picture", context do

View File

@@ -20,6 +20,8 @@ defmodule Mobilizon.Web.ConnCase do
alias Mobilizon.Storage.Repo
alias Mobilizon.Users.User
alias Mobilizon.Web.Auth
using do
quote do
# Import conveniences for testing with connections
@@ -30,7 +32,7 @@ defmodule Mobilizon.Web.ConnCase do
@endpoint Mobilizon.Web.Endpoint
def auth_conn(%Plug.Conn{} = conn, %User{} = user) do
{:ok, token, _claims} = Mobilizon.Web.Auth.Guardian.encode_and_sign(user)
{:ok, token, _claims} = Auth.Guardian.encode_and_sign(user)
conn
|> Plug.Conn.put_req_header("authorization", "Bearer #{token}")

View File

@@ -8,9 +8,8 @@ defmodule Mobilizon.Factory do
alias Mobilizon.Actors.Actor
alias Mobilizon.Crypto
alias Mobilizon.Web.Endpoint
alias Mobilizon.Web.{Endpoint, Upload}
alias Mobilizon.Web.Router.Helpers, as: Routes
alias Mobilizon.Web.Upload
def user_factory do
%Mobilizon.Users.User{
@@ -60,7 +59,7 @@ defmodule Mobilizon.Factory do
target_actor: build(:actor),
actor: build(:actor),
id: uuid,
url: "#{Mobilizon.Web.Endpoint.url()}/follows/#{uuid}"
url: "#{Endpoint.url()}/follows/#{uuid}"
}
end

View File

@@ -16,8 +16,7 @@ defmodule Mobilizon.Web.ActivityPubControllerTest do
alias Mobilizon.Federation.ActivityPub
alias Mobilizon.Web.ActivityPub.ActorView
alias Mobilizon.Web.Endpoint
alias Mobilizon.Web.PageView
alias Mobilizon.Web.{Endpoint, PageView}
alias Mobilizon.Web.Router.Helpers, as: Routes
setup_all do
@@ -104,7 +103,7 @@ defmodule Mobilizon.Web.ActivityPubControllerTest do
conn =
conn
|> assign(:valid_signature, true)
|> post("#{Mobilizon.Web.Endpoint.url()}/inbox", data)
|> post("#{Endpoint.url()}/inbox", data)
assert "ok" == json_response(conn, 200)
:timer.sleep(500)

View File

@@ -11,6 +11,8 @@ defmodule Mobilizon.Web.WebFingerControllerTest do
alias Mobilizon.Actors.Actor
alias Mobilizon.Federation.WebFinger
alias Mobilizon.Web.Endpoint
setup_all do
Mobilizon.Config.put([:instance, :federating], true)
@@ -22,7 +24,7 @@ defmodule Mobilizon.Web.WebFingerControllerTest do
assert response(conn, 200) ==
"<?xml version=\"1.0\" encoding=\"UTF-8\"?><XRD xmlns=\"http://docs.oasis-open.org/ns/xri/xrd-1.0\"><Link rel=\"lrdd\" template=\"#{
Mobilizon.Web.Endpoint.url()
Endpoint.url()
}/.well-known/webfinger?resource={uri}\" type=\"application/xrd+xml\" /></XRD>"
assert {"content-type", "application/xrd+xml; charset=utf-8"} in conn.resp_headers

View File

@@ -10,7 +10,7 @@ defmodule Mobilizon.Web.MediaProxyTest do
alias Mobilizon.Config
alias Mobilizon.Web.MediaProxyController
alias Mobilizon.Web.{Endpoint, MediaProxyController}
setup do
enabled = Config.get([:media_proxy, :enabled])
@@ -35,8 +35,8 @@ defmodule Mobilizon.Web.MediaProxyTest do
end
test "ignores local url" do
local_url = Mobilizon.Web.Endpoint.url() <> "/hello"
local_root = Mobilizon.Web.Endpoint.url()
local_url = Endpoint.url() <> "/hello"
local_root = Endpoint.url()
assert url(local_url) == local_url
assert url(local_root) == local_root
end
@@ -47,7 +47,7 @@ defmodule Mobilizon.Web.MediaProxyTest do
assert String.starts_with?(
encoded,
Config.get([:media_proxy, :base_url], Mobilizon.Web.Endpoint.url())
Config.get([:media_proxy, :base_url], Endpoint.url())
)
assert String.ends_with?(encoded, "/logo.png")
@@ -84,16 +84,16 @@ defmodule Mobilizon.Web.MediaProxyTest do
end
test "validates signature" do
secret_key_base = Config.get([Mobilizon.Web.Endpoint, :secret_key_base])
secret_key_base = Config.get([Endpoint, :secret_key_base])
on_exit(fn ->
Config.put([Mobilizon.Web.Endpoint, :secret_key_base], secret_key_base)
Config.put([Endpoint, :secret_key_base], secret_key_base)
end)
encoded = url("https://pleroma.social")
Config.put(
[Mobilizon.Web.Endpoint, :secret_key_base],
[Endpoint, :secret_key_base],
"00000000000000000000000000000000000000000000000"
)

View File

@@ -8,7 +8,7 @@ defmodule Mobilizon.UploadTest do
alias Mobilizon.Config
alias Mobilizon.Web.Upload
alias Mobilizon.Web.{Endpoint, Upload}
alias Mobilizon.Web.Upload.Uploader
describe "Storing a file with the Local uploader" do
@@ -31,7 +31,7 @@ defmodule Mobilizon.UploadTest do
size: 13_227
} = data
assert String.starts_with?(url, Mobilizon.Web.Endpoint.url() <> "/media/")
assert String.starts_with?(url, Endpoint.url() <> "/media/")
end
test "returns a media url with configured base_url" do
@@ -59,10 +59,10 @@ defmodule Mobilizon.UploadTest do
filename: "an [image.jpg"
}
{:ok, data} = Upload.store(file, filters: [Mobilizon.Web.Upload.Filter.Dedupe])
{:ok, data} = Upload.store(file, filters: [Upload.Filter.Dedupe])
assert data.url ==
Mobilizon.Web.Endpoint.url() <>
Endpoint.url() <>
"/media/590523d60d3831ec92d05cdd871078409d5780903910efec5cd35ab1b0f19d11.jpg"
end
@@ -88,7 +88,7 @@ defmodule Mobilizon.UploadTest do
filename: "an [image.jpg"
}
{:ok, data} = Upload.store(file, filters: [Mobilizon.Web.Upload.Filter.Dedupe])
{:ok, data} = Upload.store(file, filters: [Upload.Filter.Dedupe])
assert data.content_type == "image/jpeg"
end
@@ -140,7 +140,7 @@ defmodule Mobilizon.UploadTest do
filename: "an [image.jpg"
}
{:ok, data} = Upload.store(file, filters: [Mobilizon.Web.Upload.Filter.AnonymizeFilename])
{:ok, data} = Upload.store(file, filters: [Upload.Filter.AnonymizeFilename])
refute data.name == "an [image.jpg"
end
@@ -212,7 +212,7 @@ defmodule Mobilizon.UploadTest do
content_type: "image/jpeg"
} = data
assert String.starts_with?(url, Mobilizon.Web.Endpoint.url() <> "/media/")
assert String.starts_with?(url, Endpoint.url() <> "/media/")
%URI{path: "/media/" <> path} = URI.parse(url)
{Config.get!([Uploader.Local, :uploads]) <> "/" <> path, url}