defmodule Ketbin.PastesTest do use Ketbin.DataCase alias Ketbin.Pastes describe "pastes" do alias Ketbin.Pastes.Paste @valid_attrs %{content: "some content", is_url: true} @update_attrs %{content: "some updated content", is_url: false} @invalid_attrs %{content: nil, is_url: nil} def paste_fixture(attrs \\ %{}) do {:ok, paste} = attrs |> Enum.into(@valid_attrs) |> Pastes.create_paste() paste end test "list_pastes/0 returns all pastes" do paste = paste_fixture() assert Pastes.list_pastes() == [paste] end test "get_paste!/1 returns the paste with given id" do paste = paste_fixture() assert Pastes.get_paste!(paste.id) == paste end test "create_paste/1 with valid data creates a paste" do assert {:ok, %Paste{} = paste} = Pastes.create_paste(@valid_attrs) assert paste.content == "some content" assert paste.is_url == true end test "create_paste/1 with invalid data returns error changeset" do assert {:error, %Ecto.Changeset{}} = Pastes.create_paste(@invalid_attrs) end test "update_paste/2 with valid data updates the paste" do paste = paste_fixture() assert {:ok, %Paste{} = paste} = Pastes.update_paste(paste, @update_attrs) assert paste.content == "some updated content" assert paste.is_url == false end test "update_paste/2 with invalid data returns error changeset" do paste = paste_fixture() assert {:error, %Ecto.Changeset{}} = Pastes.update_paste(paste, @invalid_attrs) assert paste == Pastes.get_paste!(paste.id) end test "delete_paste/1 deletes the paste" do paste = paste_fixture() assert {:ok, %Paste{}} = Pastes.delete_paste(paste) assert_raise Ecto.NoResultsError, fn -> Pastes.get_paste!(paste.id) end end test "change_paste/1 returns a paste changeset" do paste = paste_fixture() assert %Ecto.Changeset{} = Pastes.change_paste(paste) end end end