defmodule Mobilizon.Web.ErrorViewTest do
  use Mobilizon.Web.ConnCase, async: true

  # Bring render/3 and render_to_string/3 for testing custom views
  import Phoenix.View

  alias Mobilizon.Web.ErrorView

  test "renders 404.html", %{conn: conn} do
    # Produced HTML might have new lines inside
    assert Regex.replace(
             ~r/(\r\n|\n|\r)  +/,
             render_to_string(ErrorView, "404.html", %{conn: conn}),
             " "
           ) =~
             "We're sorry but Mobilizon doesn't work properly without JavaScript enabled. Please enable it to continue."
  end

  test "render 500.html" do
    assert render_to_string(ErrorView, "500.html", []) =~
             Phoenix.HTML.html_escape("We're sorry, but something went wrong on our end.")
             |> Phoenix.HTML.safe_to_string()
  end

  test "render any other" do
    assert render_to_string(ErrorView, "505.html", []) =~
             Phoenix.HTML.html_escape("We're sorry, but something went wrong on our end.")
             |> Phoenix.HTML.safe_to_string()
  end
end