daily-tracker

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README

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