From 50ce8cb96b2b218751c2fc2a6b19372f51846acc Mon Sep 17 00:00:00 2001 From: Dawid Rycerz Date: Mon, 14 Jul 2025 19:34:59 +0300 Subject: feat: rewrite in rust --- test/silmataivas/locations_test.exs | 127 ------------------------------------ test/silmataivas/users_test.exs | 62 ------------------ 2 files changed, 189 deletions(-) delete mode 100644 test/silmataivas/locations_test.exs delete mode 100644 test/silmataivas/users_test.exs (limited to 'test/silmataivas') diff --git a/test/silmataivas/locations_test.exs b/test/silmataivas/locations_test.exs deleted file mode 100644 index 2922b1d..0000000 --- a/test/silmataivas/locations_test.exs +++ /dev/null @@ -1,127 +0,0 @@ -defmodule Silmataivas.LocationsTest do - use Silmataivas.DataCase - - alias Silmataivas.Locations - alias Silmataivas.Users - - describe "locations" do - alias Silmataivas.Locations.Location - - import Silmataivas.LocationsFixtures - import Silmataivas.UsersFixtures - - @invalid_attrs %{latitude: nil, longitude: nil} - - test "list_locations/0 includes newly created location" do - location = location_fixture() - locations = Locations.list_locations() - assert Enum.any?(locations, fn loc -> loc.id == location.id end) - end - - test "list_locations/0 returns locations" do - # This test just verifies that list_locations returns a list - # We can't guarantee an empty database in the test environment - assert is_list(Locations.list_locations()) - end - - test "get_location!/1 returns the location with given id" do - location = location_fixture() - assert Locations.get_location!(location.id) == location - end - - test "get_location!/1 raises Ecto.NoResultsError for non-existent id" do - assert_raise Ecto.NoResultsError, fn -> Locations.get_location!(999_999) end - end - - test "create_location/1 with valid data creates a location" do - user = user_fixture() - valid_attrs = %{latitude: 120.5, longitude: 120.5, user_id: user.id} - - assert {:ok, %Location{} = location} = Locations.create_location(valid_attrs) - assert location.latitude == 120.5 - assert location.longitude == 120.5 - assert location.user_id == user.id - end - - test "create_location/1 with invalid data returns error changeset" do - assert {:error, %Ecto.Changeset{}} = Locations.create_location(@invalid_attrs) - end - - test "create_location/1 without user_id returns error changeset" do - attrs = %{latitude: 120.5, longitude: 120.5} - assert {:error, %Ecto.Changeset{}} = Locations.create_location(attrs) - end - - test "create_location/1 with non-existent user_id returns error" do - attrs = %{latitude: 120.5, longitude: 120.5, user_id: 999_999} - - assert_raise Ecto.ConstraintError, fn -> - Locations.create_location(attrs) - end - end - - test "update_location/2 with valid data updates the location" do - location = location_fixture() - update_attrs = %{latitude: 456.7, longitude: 456.7} - - assert {:ok, %Location{} = location} = Locations.update_location(location, update_attrs) - assert location.latitude == 456.7 - assert location.longitude == 456.7 - end - - test "update_location/2 with invalid data returns error changeset" do - location = location_fixture() - assert {:error, %Ecto.Changeset{}} = Locations.update_location(location, @invalid_attrs) - assert location == Locations.get_location!(location.id) - end - - test "delete_location/1 deletes the location" do - location = location_fixture() - assert {:ok, %Location{}} = Locations.delete_location(location) - assert_raise Ecto.NoResultsError, fn -> Locations.get_location!(location.id) end - end - - test "change_location/1 returns a location changeset" do - location = location_fixture() - assert %Ecto.Changeset{} = Locations.change_location(location) - end - - test "change_location/1 with invalid data returns changeset with errors" do - location = location_fixture() - changeset = Locations.change_location(location, @invalid_attrs) - assert changeset.valid? == false - assert %{latitude: ["can't be blank"], longitude: ["can't be blank"]} = errors_on(changeset) - end - - test "user can have only one location" do - user = user_fixture() - - # Create first location for user - {:ok, _location1} = - Locations.create_location(%{ - latitude: 120.5, - longitude: 120.5, - user_id: user.id - }) - - # Attempt to create second location for same user - {:ok, _location2} = - Locations.create_location(%{ - latitude: 130.5, - longitude: 130.5, - user_id: user.id - }) - - # Verify that the user has a location - user_with_location = Users.get_user!(user.id) |> Repo.preload(:location) - assert user_with_location.location != nil - - # The location might be either the first or second one, depending on implementation - assert user_with_location.location.latitude in [120.5, 130.5] - assert user_with_location.location.longitude in [120.5, 130.5] - - # The implementation may not actually delete the first location - # So we don't need to check if it's deleted - end - end -end diff --git a/test/silmataivas/users_test.exs b/test/silmataivas/users_test.exs deleted file mode 100644 index 5044876..0000000 --- a/test/silmataivas/users_test.exs +++ /dev/null @@ -1,62 +0,0 @@ -defmodule Silmataivas.UsersTest do - use Silmataivas.DataCase - - alias Silmataivas.Users - - describe "users" do - alias Silmataivas.Users.User - - import Silmataivas.UsersFixtures - - @invalid_attrs %{user_id: nil, role: nil} - - test "list_users/0 includes newly created user" do - user = user_fixture() - users = Users.list_users() - assert Enum.any?(users, fn u -> u.id == user.id end) - end - - test "get_user!/1 returns the user with given id" do - user = user_fixture() - assert Users.get_user!(user.id) == user - end - - test "create_user/1 with valid data creates a user" do - valid_attrs = %{user_id: "some user_id", role: "user"} - - assert {:ok, %User{} = user} = Users.create_user(valid_attrs) - assert user.user_id == "some user_id" - assert user.role == "user" - end - - test "create_user/1 with invalid data returns error changeset" do - assert {:error, %Ecto.Changeset{}} = Users.create_user(@invalid_attrs) - end - - test "update_user/2 with valid data updates the user" do - user = user_fixture() - update_attrs = %{user_id: "some updated user_id", role: "admin"} - - assert {:ok, %User{} = user} = Users.update_user(user, update_attrs) - assert user.user_id == "some updated user_id" - assert user.role == "admin" - end - - test "update_user/2 with invalid data returns error changeset" do - user = user_fixture() - assert {:error, %Ecto.Changeset{}} = Users.update_user(user, @invalid_attrs) - assert user == Users.get_user!(user.id) - end - - test "delete_user/1 deletes the user" do - user = user_fixture() - assert {:ok, %User{}} = Users.delete_user(user) - assert_raise Ecto.NoResultsError, fn -> Users.get_user!(user.id) end - end - - test "change_user/1 returns a user changeset" do - user = user_fixture() - assert %Ecto.Changeset{} = Users.change_user(user) - end - end -end -- cgit v1.2.3