|
|
|
@ -4,7 +4,6 @@ defmodule DecentralisedBookIndex.Metadata.Forms.BookFormTest do
|
|
|
|
|
import ExUnitProperties
|
|
|
|
|
|
|
|
|
|
alias DecentralisedBookIndex.Metadata
|
|
|
|
|
alias DecentralisedBookIndex.Metadata.Book
|
|
|
|
|
|
|
|
|
|
setup do
|
|
|
|
|
user = generate(user(role: :moderator))
|
|
|
|
@ -14,22 +13,9 @@ defmodule DecentralisedBookIndex.Metadata.Forms.BookFormTest do
|
|
|
|
|
describe "form submiting" do
|
|
|
|
|
test "user can't submit" do
|
|
|
|
|
user = generate(user())
|
|
|
|
|
bids = bids()
|
|
|
|
|
author_roles = author_roles()
|
|
|
|
|
|
|
|
|
|
valid_params = %{
|
|
|
|
|
"title" => "Book",
|
|
|
|
|
"description" => "A cool author",
|
|
|
|
|
"format" => "Paper",
|
|
|
|
|
"language" => "English",
|
|
|
|
|
"page_count" => 600,
|
|
|
|
|
"published" => ~D[2025-03-06],
|
|
|
|
|
"author_roles" => author_roles,
|
|
|
|
|
"bids" => bids
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
assert_raise Ash.Error.Forbidden, fn ->
|
|
|
|
|
form =
|
|
|
|
|
_form =
|
|
|
|
|
AshPhoenix.Form.for_create(Metadata.Book, :create,
|
|
|
|
|
as: "book",
|
|
|
|
|
actor: user
|
|
|
|
@ -39,21 +25,7 @@ defmodule DecentralisedBookIndex.Metadata.Forms.BookFormTest do
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
test "moderator can submit", %{user: user} do
|
|
|
|
|
bids = bids(actor: user)
|
|
|
|
|
author_roles = author_roles(actor: user)
|
|
|
|
|
|
|
|
|
|
valid_params = %{
|
|
|
|
|
"title" => "Book",
|
|
|
|
|
"description" => "A cool author",
|
|
|
|
|
"format" => "Paper",
|
|
|
|
|
"language" => "English",
|
|
|
|
|
"page_count" => 600,
|
|
|
|
|
"published" => ~D[2025-03-06],
|
|
|
|
|
"author_roles" => author_roles,
|
|
|
|
|
"bids" => bids
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
assert form =
|
|
|
|
|
assert _form =
|
|
|
|
|
AshPhoenix.Form.for_create(Metadata.Book, :create,
|
|
|
|
|
as: "book",
|
|
|
|
|
actor: user
|
|
|
|
@ -86,7 +58,7 @@ defmodule DecentralisedBookIndex.Metadata.Forms.BookFormTest do
|
|
|
|
|
actor: user
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
assert {:ok, user} = AshPhoenix.Form.submit(form, params: valid_params)
|
|
|
|
|
assert {:ok, _book} = AshPhoenix.Form.submit(form, params: valid_params)
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
@ -106,7 +78,7 @@ defmodule DecentralisedBookIndex.Metadata.Forms.BookFormTest do
|
|
|
|
|
actor: user
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
assert {:ok, user} = AshPhoenix.Form.submit(form, params: valid_params)
|
|
|
|
|
assert {:ok, _book} = AshPhoenix.Form.submit(form, params: valid_params)
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
test "update bids and authors", %{user: user} do
|
|
|
|
@ -125,7 +97,7 @@ defmodule DecentralisedBookIndex.Metadata.Forms.BookFormTest do
|
|
|
|
|
actor: user
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
assert {:ok, user} = AshPhoenix.Form.submit(form, params: valid_params)
|
|
|
|
|
assert {:ok, _book} = AshPhoenix.Form.submit(form, params: valid_params)
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|