from app.business.time_calc import ( minutes_to_str, work_minutes_reference, week_balance_minutes, ) def test_minutes_to_str_basic(): assert minutes_to_str(465) == "7h45" def test_minutes_to_str_zero(): assert minutes_to_str(0) == "0h00" def test_minutes_to_str_negative(): assert minutes_to_str(-75) == "-1h15" def test_work_minutes_reference_normal_day(): assert work_minutes_reference("WORK") == 465 assert work_minutes_reference("TT") == 465 assert work_minutes_reference("FORMATION") == 465 def test_work_minutes_reference_garde(): assert work_minutes_reference("GARDE") == 600 def test_work_minutes_reference_absence(): assert work_minutes_reference("RTT") == 0 assert work_minutes_reference("CONGE") == 0 assert work_minutes_reference("MALADE") == 0 assert work_minutes_reference("FERIE") == 0 def test_week_balance_positive(): assert week_balance_minutes(2400, 2325) == 75 def test_week_balance_negative(): assert week_balance_minutes(2200, 2325) == -125 from app.business.time_calc import count_day_types from app.models import WorkEntry from datetime import date def test_count_day_types_basic(): entries = [ WorkEntry(date=date(2025, 1, 2), day_type="WORK"), WorkEntry(date=date(2025, 1, 3), day_type="WORK"), WorkEntry(date=date(2025, 1, 6), day_type="TT"), WorkEntry(date=date(2025, 1, 7), day_type="GARDE"), ] result = count_day_types(entries) assert result == {"WORK": 2, "TT": 1, "GARDE": 1} def test_count_day_types_empty(): assert count_day_types([]) == {} def test_count_day_types_single_type(): entries = [ WorkEntry(date=date(2025, 2, 1), day_type="RTT"), WorkEntry(date=date(2025, 2, 2), day_type="RTT"), ] result = count_day_types(entries) assert result == {"RTT": 2}