tracker_test.exs (2890B)
1 defmodule DailyTracker.TrackerTest do 2 use DailyTracker.DataCase 3 4 alias DailyTracker.Tracker 5 6 describe "entries" do 7 alias DailyTracker.Tracker.Entry 8 9 import DailyTracker.TrackerFixtures 10 11 @invalid_attrs %{date: nil, period: nil, mood: nil, headache: nil, water_glasses: nil, worked_out: nil, bowel_movement: nil, hunger_level: nil, notes: nil} 12 13 test "list_entries/0 returns all entries" do 14 entry = entry_fixture() 15 assert Tracker.list_entries() == [entry] 16 end 17 18 test "get_entry!/1 returns the entry with given id" do 19 entry = entry_fixture() 20 assert Tracker.get_entry!(entry.id) == entry 21 end 22 23 test "create_entry/1 with valid data creates a entry" do 24 valid_attrs = %{date: ~D[2026-05-29], period: true, mood: "some mood", headache: true, water_glasses: 42, worked_out: true, bowel_movement: true, hunger_level: 42, notes: "some notes"} 25 26 assert {:ok, %Entry{} = entry} = Tracker.create_entry(valid_attrs) 27 assert entry.date == ~D[2026-05-29] 28 assert entry.period == true 29 assert entry.mood == "some mood" 30 assert entry.headache == true 31 assert entry.water_glasses == 42 32 assert entry.worked_out == true 33 assert entry.bowel_movement == true 34 assert entry.hunger_level == 42 35 assert entry.notes == "some notes" 36 end 37 38 test "create_entry/1 with invalid data returns error changeset" do 39 assert {:error, %Ecto.Changeset{}} = Tracker.create_entry(@invalid_attrs) 40 end 41 42 test "update_entry/2 with valid data updates the entry" do 43 entry = entry_fixture() 44 update_attrs = %{date: ~D[2026-05-30], period: false, mood: "some updated mood", headache: false, water_glasses: 43, worked_out: false, bowel_movement: false, hunger_level: 43, notes: "some updated notes"} 45 46 assert {:ok, %Entry{} = entry} = Tracker.update_entry(entry, update_attrs) 47 assert entry.date == ~D[2026-05-30] 48 assert entry.period == false 49 assert entry.mood == "some updated mood" 50 assert entry.headache == false 51 assert entry.water_glasses == 43 52 assert entry.worked_out == false 53 assert entry.bowel_movement == false 54 assert entry.hunger_level == 43 55 assert entry.notes == "some updated notes" 56 end 57 58 test "update_entry/2 with invalid data returns error changeset" do 59 entry = entry_fixture() 60 assert {:error, %Ecto.Changeset{}} = Tracker.update_entry(entry, @invalid_attrs) 61 assert entry == Tracker.get_entry!(entry.id) 62 end 63 64 test "delete_entry/1 deletes the entry" do 65 entry = entry_fixture() 66 assert {:ok, %Entry{}} = Tracker.delete_entry(entry) 67 assert_raise Ecto.NoResultsError, fn -> Tracker.get_entry!(entry.id) end 68 end 69 70 test "change_entry/1 returns a entry changeset" do 71 entry = entry_fixture() 72 assert %Ecto.Changeset{} = Tracker.change_entry(entry) 73 end 74 end 75 end