66 lines
2.4 KiB
Elixir
66 lines
2.4 KiB
Elixir
|
|
defmodule MyFirstElixirVibeCode.ReviewsTest do
|
||
|
|
use MyFirstElixirVibeCode.DataCase
|
||
|
|
|
||
|
|
alias MyFirstElixirVibeCode.Reviews
|
||
|
|
|
||
|
|
describe "reviews" do
|
||
|
|
alias MyFirstElixirVibeCode.Reviews.Review
|
||
|
|
|
||
|
|
import MyFirstElixirVibeCode.ReviewsFixtures
|
||
|
|
|
||
|
|
@invalid_attrs %{title: nil, rating: nil, content: nil, project_type: nil}
|
||
|
|
|
||
|
|
test "list_reviews/0 returns all reviews" do
|
||
|
|
review = review_fixture()
|
||
|
|
assert Reviews.list_reviews() == [review]
|
||
|
|
end
|
||
|
|
|
||
|
|
test "get_review!/1 returns the review with given id" do
|
||
|
|
review = review_fixture()
|
||
|
|
assert Reviews.get_review!(review.id) == review
|
||
|
|
end
|
||
|
|
|
||
|
|
test "create_review/1 with valid data creates a review" do
|
||
|
|
valid_attrs = %{title: "some title", rating: 42, content: "some content", project_type: "some project_type"}
|
||
|
|
|
||
|
|
assert {:ok, %Review{} = review} = Reviews.create_review(valid_attrs)
|
||
|
|
assert review.title == "some title"
|
||
|
|
assert review.rating == 42
|
||
|
|
assert review.content == "some content"
|
||
|
|
assert review.project_type == "some project_type"
|
||
|
|
end
|
||
|
|
|
||
|
|
test "create_review/1 with invalid data returns error changeset" do
|
||
|
|
assert {:error, %Ecto.Changeset{}} = Reviews.create_review(@invalid_attrs)
|
||
|
|
end
|
||
|
|
|
||
|
|
test "update_review/2 with valid data updates the review" do
|
||
|
|
review = review_fixture()
|
||
|
|
update_attrs = %{title: "some updated title", rating: 43, content: "some updated content", project_type: "some updated project_type"}
|
||
|
|
|
||
|
|
assert {:ok, %Review{} = review} = Reviews.update_review(review, update_attrs)
|
||
|
|
assert review.title == "some updated title"
|
||
|
|
assert review.rating == 43
|
||
|
|
assert review.content == "some updated content"
|
||
|
|
assert review.project_type == "some updated project_type"
|
||
|
|
end
|
||
|
|
|
||
|
|
test "update_review/2 with invalid data returns error changeset" do
|
||
|
|
review = review_fixture()
|
||
|
|
assert {:error, %Ecto.Changeset{}} = Reviews.update_review(review, @invalid_attrs)
|
||
|
|
assert review == Reviews.get_review!(review.id)
|
||
|
|
end
|
||
|
|
|
||
|
|
test "delete_review/1 deletes the review" do
|
||
|
|
review = review_fixture()
|
||
|
|
assert {:ok, %Review{}} = Reviews.delete_review(review)
|
||
|
|
assert_raise Ecto.NoResultsError, fn -> Reviews.get_review!(review.id) end
|
||
|
|
end
|
||
|
|
|
||
|
|
test "change_review/1 returns a review changeset" do
|
||
|
|
review = review_fixture()
|
||
|
|
assert %Ecto.Changeset{} = Reviews.change_review(review)
|
||
|
|
end
|
||
|
|
end
|
||
|
|
end
|