wiki/test/wiki/content_test.exs

67 lines
2.0 KiB
Elixir

defmodule Wiki.ContentTest do
use Wiki.DataCase
alias Wiki.Content
describe "pages" do
alias Wiki.Content.Page
@valid_attrs %{content: "some content", title: "some title"}
@update_attrs %{content: "some updated content", title: "some updated title"}
@invalid_attrs %{content: nil, title: nil}
def page_fixture(attrs \\ %{}) do
{:ok, page} =
attrs
|> Enum.into(@valid_attrs)
|> Content.create_page()
page
end
test "list_pages/0 returns all pages" do
page = page_fixture()
assert Content.list_pages() == [page]
end
test "get_page!/1 returns the page with given id" do
page = page_fixture()
assert Content.get_page!(page.id) == page
end
test "create_page/1 with valid data creates a page" do
assert {:ok, %Page{} = page} = Content.create_page(@valid_attrs)
assert page.content == "some content"
assert page.title == "some title"
end
test "create_page/1 with invalid data returns error changeset" do
assert {:error, %Ecto.Changeset{}} = Content.create_page(@invalid_attrs)
end
test "update_page/2 with valid data updates the page" do
page = page_fixture()
assert {:ok, %Page{} = page} = Content.update_page(page, @update_attrs)
assert page.content == "some updated content"
assert page.title == "some updated title"
end
test "update_page/2 with invalid data returns error changeset" do
page = page_fixture()
assert {:error, %Ecto.Changeset{}} = Content.update_page(page, @invalid_attrs)
assert page == Content.get_page!(page.id)
end
test "delete_page/1 deletes the page" do
page = page_fixture()
assert {:ok, %Page{}} = Content.delete_page(page)
assert_raise Ecto.NoResultsError, fn -> Content.get_page!(page.id) end
end
test "change_page/1 returns a page changeset" do
page = page_fixture()
assert %Ecto.Changeset{} = Content.change_page(page)
end
end
end