defmodule SimpleshopThemeWeb.Shop.ContentTest do
  use SimpleshopThemeWeb.ConnCase, async: false

  import Phoenix.LiveViewTest
  import SimpleshopTheme.AccountsFixtures

  setup do
    user_fixture()
    {:ok, _} = SimpleshopTheme.Settings.set_site_live(true)
    :ok
  end

  describe "About page" do
    test "renders about page", %{conn: conn} do
      {:ok, _view, html} = live(conn, ~p"/about")

      assert html =~ "About the studio"
      assert html =~ "sample about page"
    end

    test "displays about image", %{conn: conn} do
      {:ok, _view, html} = live(conn, ~p"/about")

      assert html =~ "night-sky-blanket"
    end
  end

  describe "Delivery page" do
    test "renders delivery page", %{conn: conn} do
      {:ok, _view, html} = live(conn, ~p"/delivery")

      assert html =~ "Delivery &amp; returns"
      assert html =~ "shipping and returns"
    end

    test "displays delivery content", %{conn: conn} do
      {:ok, _view, html} = live(conn, ~p"/delivery")

      assert html =~ "Shipping"
      assert html =~ "Returns &amp; exchanges"
      assert html =~ "Cancellations"
    end

    test "displays list items", %{conn: conn} do
      {:ok, _view, html} = live(conn, ~p"/delivery")

      assert html =~ "United Kingdom"
      assert html =~ "5–8 business days"
    end
  end

  describe "Privacy page" do
    test "renders privacy page", %{conn: conn} do
      {:ok, _view, html} = live(conn, ~p"/privacy")

      assert html =~ "Privacy policy"
      assert html =~ "personal information"
    end

    test "displays privacy content", %{conn: conn} do
      {:ok, _view, html} = live(conn, ~p"/privacy")

      assert html =~ "What we collect"
      assert html =~ "Cookies"
      assert html =~ "Your rights"
    end
  end

  describe "Terms page" do
    test "renders terms page", %{conn: conn} do
      {:ok, _view, html} = live(conn, ~p"/terms")

      assert html =~ "Terms of service"
      assert html =~ "The legal bits"
    end

    test "displays terms content", %{conn: conn} do
      {:ok, _view, html} = live(conn, ~p"/terms")

      assert html =~ "Products"
      assert html =~ "Orders &amp; payment"
      assert html =~ "Intellectual property"
    end
  end

  describe "Footer links" do
    test "footer contains policy page links", %{conn: conn} do
      {:ok, _view, html} = live(conn, ~p"/about")

      assert html =~ ~s(href="/delivery")
      assert html =~ ~s(href="/privacy")
      assert html =~ ~s(href="/terms")
      assert html =~ ~s(href="/contact")
    end
  end
end
