mirror of
https://github.com/mgerb/classic-wow-forums
synced 2026-01-10 09:02:50 +00:00
47 lines
1.6 KiB
Elixir
47 lines
1.6 KiB
Elixir
defmodule MyAppWeb.ReplyControllerTest do
|
|
use MyAppWeb.ConnCase, async: true
|
|
import MyApp.Data.TestHelpers
|
|
|
|
test "insert new reply should fail" do
|
|
{:ok, user} = new_user()
|
|
new_conn = build_conn()
|
|
|> put_req_header("authorization", "Bearer " <> user.token)
|
|
|
|
{:badmatch, {:error, data}} = conn = catch_error(post(new_conn, "/api/reply"))
|
|
assert data == [%{thread_id: "can't be blank"}, %{content: "can't be blank"}]
|
|
|
|
{:badmatch, {:error, data}} = conn = catch_error(post(new_conn, "/api/reply", %{"content" => "t"}))
|
|
assert data == [%{thread_id: "can't be blank"}]
|
|
|
|
{:badmatch, {:error, data}} = conn = catch_error(post(new_conn, "/api/reply", %{"content" => "t", "thread_id" => 1}))
|
|
assert data == [%{thread_id: "does not exist"}]
|
|
end
|
|
|
|
test "insert new reply should succeed" do
|
|
{:ok, user} = new_user()
|
|
new_conn = build_conn()
|
|
|> put_req_header("authorization", "Bearer " <> user.token)
|
|
|
|
# insert new thread first
|
|
conn = post(new_conn, "/api/thread", %{"title" => "t", "category_id" => 1})
|
|
body = conn |> response(200) |> Poison.decode!
|
|
|
|
conn = post(new_conn, "/api/reply", %{"content" => "c", "thread_id" => body["data"]["id"]})
|
|
body = conn |> response(200) |> Poison.decode!
|
|
|
|
data = body["data"]
|
|
user_id = data["user_id"]
|
|
|
|
assert data["content"] == "c"
|
|
assert data["edited"] == false
|
|
assert data["quote_id"] == nil
|
|
|
|
# make sure thread reply count and last reply id are updated
|
|
# conn = get(new_conn, "/api/thread?category_id=1")
|
|
# body = conn |> response(200) |> Poison.decode!
|
|
|
|
# assert Enum.at(body["data"], 0) == "ok"
|
|
end
|
|
|
|
end
|