summaryrefslogtreecommitdiff
path: root/test/silmataivas/locations_test.exs
diff options
context:
space:
mode:
authorDawid Rycerz <dawid@rycerz.xyz>2025-07-14 19:34:59 +0300
committerDawid Rycerz <dawid@rycerz.xyz>2025-07-14 19:34:59 +0300
commit50ce8cb96b2b218751c2fc2a6b19372f51846acc (patch)
treee2c634d2ce856062d527667d47815a05a53361c8 /test/silmataivas/locations_test.exs
parent0ab2e5ba2b0631b28b5b1405559237b3913c878f (diff)
feat: rewrite in rust
Diffstat (limited to 'test/silmataivas/locations_test.exs')
-rw-r--r--test/silmataivas/locations_test.exs127
1 files changed, 0 insertions, 127 deletions
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