diff --git a/tests/test_trip_page_route.py b/tests/test_trip_page_route.py
index db7abb4..d471caa 100644
--- a/tests/test_trip_page_route.py
+++ b/tests/test_trip_page_route.py
@@ -1,4 +1,4 @@
-"""Regression tests for trip page route wiring."""
+"""Regression tests for trip page route wiring and rendering."""
from datetime import date
import typing
@@ -64,3 +64,68 @@ def test_trip_page_passes_data_dir_to_unbooked_flight_helper() -> None:
)
web_view.agenda.weather.get_trip_weather = original_get_trip_weather
web_view.flask.render_template = original_render_template
+
+
+def test_trip_page_renders_with_date_only_train_leg() -> None:
+ """Trip page should render when train legs use date values (no time)."""
+ trip = Trip(
+ start=date(2025, 1, 28),
+ travel=[
+ {
+ "type": "train",
+ "depart": date(2025, 1, 28),
+ "from": "A",
+ "to": "B",
+ "from_station": {
+ "name": "A",
+ "country": "gb",
+ "latitude": 51.5,
+ "longitude": -0.1,
+ },
+ "to_station": {
+ "name": "B",
+ "country": "gb",
+ "latitude": 51.6,
+ "longitude": -0.2,
+ },
+ "legs": [
+ {
+ "from": "A",
+ "to": "B",
+ "depart": date(2025, 1, 28),
+ "arrive": date(2025, 1, 28),
+ "from_station": {
+ "name": "A",
+ "country": "gb",
+ "latitude": 51.5,
+ "longitude": -0.1,
+ },
+ "to_station": {
+ "name": "B",
+ "country": "gb",
+ "latitude": 51.6,
+ "longitude": -0.2,
+ },
+ "operator": "Test Rail",
+ }
+ ],
+ }
+ ],
+ )
+
+ with web_view.app.app_context():
+ original_get_trip_list = web_view.get_trip_list
+ original_get_trip_weather = web_view.agenda.weather.get_trip_weather
+ try:
+ web_view.get_trip_list = lambda: [trip]
+ web_view.agenda.weather.get_trip_weather = lambda *_args, **_kwargs: []
+ web_view.app.config["TESTING"] = True
+
+ with web_view.app.test_client() as client:
+ response = client.get("/trip/2025-01-28")
+
+ assert response.status_code == 200
+ assert b"Test Rail" in response.data
+ finally:
+ web_view.get_trip_list = original_get_trip_list
+ web_view.agenda.weather.get_trip_weather = original_get_trip_weather