diff options
Diffstat (limited to 'test')
| -rw-r--r-- | test/captcha_test.exs | 40 | ||||
| -rw-r--r-- | test/support/captcha_mock.ex | 13 | 
2 files changed, 53 insertions, 0 deletions
| diff --git a/test/captcha_test.exs b/test/captcha_test.exs new file mode 100644 index 000000000..54ffbd92f --- /dev/null +++ b/test/captcha_test.exs @@ -0,0 +1,40 @@ +defmodule Pleroma.CaptchaTest do +  use ExUnit.Case + +  import Tesla.Mock + +  alias Pleroma.Captcha.Kocaptcha + +  @ets_options [:ordered_set, :private, :named_table, {:read_concurrency, true}] + +  describe "Kocaptcha" do +    setup do +      ets_name = Kocaptcha.Ets +      ^ets_name = :ets.new(ets_name, @ets_options) + +      mock(fn +        %{method: :get, url: "https://captcha.kotobank.ch/new"} -> +          json(%{ +            md5: "63615261b77f5354fb8c4e4986477555", +            token: "afa1815e14e29355e6c8f6b143a39fa2", +            url: "/captchas/afa1815e14e29355e6c8f6b143a39fa2.png" +          }) +      end) + +      :ok +    end + +    test "new and validate" do +      assert Kocaptcha.new() == %{ +               type: :kocaptcha, +               token: "afa1815e14e29355e6c8f6b143a39fa2", +               url: "https://captcha.kotobank.ch/captchas/afa1815e14e29355e6c8f6b143a39fa2.png" +             } + +      assert Kocaptcha.validate( +               "afa1815e14e29355e6c8f6b143a39fa2", +               "7oEy8c" +             ) +    end +  end +end diff --git a/test/support/captcha_mock.ex b/test/support/captcha_mock.ex new file mode 100644 index 000000000..898aa17b8 --- /dev/null +++ b/test/support/captcha_mock.ex @@ -0,0 +1,13 @@ +defmodule Pleroma.Captcha.Mock do +  alias Pleroma.Captcha.Service +  @behaviour Service + +  @impl Service +  def new(), do: %{type: :mock} + +  @impl Service +  def validate(_token, _captcha), do: true + +  @impl Service +  def cleanup(), do: :ok +end | 
