From 8d3d619e7c9fd0cb5719f0697dabde4e2a9150ac Mon Sep 17 00:00:00 2001 From: KKlochko Date: Sun, 1 Sep 2024 21:31:32 +0300 Subject: [PATCH] Update the tests for Links. --- test/link_shortener/links_test.exs | 39 ++++++++++++++++++++++-------- 1 file changed, 29 insertions(+), 10 deletions(-) diff --git a/test/link_shortener/links_test.exs b/test/link_shortener/links_test.exs index b38b80b..3fefac2 100644 --- a/test/link_shortener/links_test.exs +++ b/test/link_shortener/links_test.exs @@ -2,6 +2,11 @@ defmodule LinkShortener.LinksTest do use LinkShortener.DataCase alias LinkShortener.Links + alias LinkShortener.Links.Link + + alias LinkShortener.Factories.UserFactory + + import LinkShortener.LinksFixtures @create_attrs %{ name: "some link name", @@ -23,31 +28,40 @@ defmodule LinkShortener.LinksTest do shorten: nil, } - describe "links" do - alias LinkShortener.Links.Link - - import LinkShortener.LinksFixtures + setup do + {:ok, user: UserFactory.create_user()} + end + describe "links" do test "new_one/1 returns the changeset" do assert %Ecto.Changeset{} = Links.new_one() end - test "create_one/1 with valid data creates a link" do - assert {:ok, %Link{} = link} = Links.create_one(@create_generated_attrs) + test "create_one/1 with valid data creates a link", %{user: user} do + assert {:ok, %Link{} = link} = + with_user(@create_generated_attrs, user) + |> Links.create_one() + assert link.name == "some link name" assert link.url == "https://gitlab.com/KKlochko/link_shortener" assert String.length(link.shorten) == 10 end - test "create_one/2 with valid data creates a link" do - assert {:ok, %Link{} = link} = Links.create_one(@create_generated_attrs, 5) + test "create_one/2 with valid data creates a link", %{user: user} do + assert {:ok, %Link{} = link} = + with_user(@create_generated_attrs, user) + |> Links.create_one(5) + assert link.name == "some link name" assert link.url == "https://gitlab.com/KKlochko/link_shortener" assert String.length(link.shorten) == 5 end - test "insert_one/1 with valid data creates a link" do - assert {:ok, %Link{} = link} = Links.insert_one(@create_attrs) + test "insert_one/1 with valid data creates a link", %{user: user} do + assert {:ok, %Link{} = link} = + with_user(@create_attrs, user) + |> Links.insert_one() + assert link.name == "some link name" assert link.url == "https://gitlab.com/KKlochko/link_shortener" assert link.shorten == "git_repo" @@ -103,4 +117,9 @@ defmodule LinkShortener.LinksTest do assert_raise Ecto.NoResultsError, fn -> Links.get_one!(link.id) end end end + + defp with_user(attrs, user) do + attrs + |> Map.put(:user_id, user.id) + end end