diff --git a/driving_log/templates/dashboard.html b/driving_log/templates/dashboard.html index d36e917..9b992e9 100644 --- a/driving_log/templates/dashboard.html +++ b/driving_log/templates/dashboard.html @@ -43,6 +43,7 @@

Student progress

{{ format_minutes(totals.total_minutes) }} / 60h

Total driving + Remaining: {{ format_minutes([0, 3600 - totals.total_minutes] | max) }}
@@ -50,13 +51,13 @@

Student progress

{{ format_minutes(totals.night_minutes) }} / 10h

Night driving + Remaining: {{ format_minutes([0, 600 - totals.night_minutes] | max) }}
-
Remaining{{ format_minutes([0, 3600 - totals.total_minutes] | max) }}
Recorded drives{{ totals.drive_count }}
{% if overages %} diff --git a/tests/test_web.py b/tests/test_web.py index 5e92869..e961d14 100644 --- a/tests/test_web.py +++ b/tests/test_web.py @@ -1178,6 +1178,22 @@ async def add_drive(day: int, duration_minutes: int) -> None: ) self.assertEqual(response.status_code, 303) + async def add_night_drive(day: int) -> None: + start = datetime(2026, 7, day, 22, tzinfo=ZoneInfo(DEFAULT_TIMEZONE)) + response = await client.post( + "/drives", + data={ + "request_id": str(uuid.uuid4()), + "driver_name": "Daniel Ahern", + "started_at_local": start.strftime("%Y-%m-%dT%H:%M"), + "ended_at_local": (start + timedelta(hours=8)).strftime( + "%Y-%m-%dT%H:%M" + ), + "road_type": "local", + }, + ) + self.assertEqual(response.status_code, 303) + await add_drive(1, 18) dashboard = await client.get("/") self.assertIn( @@ -1210,11 +1226,24 @@ async def add_drive(day: int, duration_minutes: int) -> None: self.assertIn(">100%", dashboard.text) await add_drive(16, 288) + await add_night_drive(20) + await add_night_drive(22) + await add_night_drive(24) dashboard = await client.get("/") self.assertIn( - 'aria-label="108 percent of required driving completed"', dashboard.text + 'aria-label="148 percent of required driving completed"', dashboard.text + ) + self.assertIn(">148%", dashboard.text) + self.assertIn( + "Total driving\n Remaining: 0h 00m", + dashboard.text, + ) + self.assertIn( + "Night driving\n Remaining: 0h 00m", + dashboard.text, ) - self.assertIn(">108%", dashboard.text) + self.assertNotIn("Total remaining", dashboard.text) + self.assertNotIn("Nighttime remaining", dashboard.text) self.run_async(scenario)