diff --git a/apps/stops/lib/route_stop.ex b/apps/stops/lib/route_stop.ex index ea5d8990c8..719ff49960 100644 --- a/apps/stops/lib/route_stop.ex +++ b/apps/stops/lib/route_stop.ex @@ -307,6 +307,7 @@ defmodule Stops.RouteStop do |> Map.get(:id) |> Routes.Repo.by_stop(include: "stop.connecting_stops") |> Enum.reject(&(&1.id == route_stop.route.id)) + |> Enum.reject(&(&1.description == :rail_replacement_bus)) %{route_stop | connections: connections} end diff --git a/apps/stops/test/route_stop_test.exs b/apps/stops/test/route_stop_test.exs index cc1a91ffac..e0290d4424 100644 --- a/apps/stops/test/route_stop_test.exs +++ b/apps/stops/test/route_stop_test.exs @@ -1,7 +1,8 @@ defmodule Stops.RouteStopTest do - use ExUnit.Case, async: true + use ExUnit.Case, async: false import Stops.RouteStop + import Mock alias Routes.{Route, Shape} alias RoutePatterns.RoutePattern alias Stops.{RouteStop, Stop} @@ -618,9 +619,23 @@ defmodule Stops.RouteStopTest do test "builds a list of connecting routes at a stop" do route_stop = build_route_stop(@stop, @red_route) assert route_stop.connections == {:error, :not_fetched} - fetched = fetch_connections(route_stop) - assert [%Route{} | _] = fetched.connections - assert Enum.find(fetched.connections, &(&1.id == fetched.route.id)) == nil + stop_id = @stop.id + + with_mock(Routes.Repo, + by_stop: fn ^stop_id, [include: "stop.connecting_stops"] -> + [ + %Route{id: @red_route.id}, + %Route{id: "one", type: 2}, + %Route{id: "another", type: 3}, + %Route{id: "shuttle", description: :rail_replacement_bus, type: 3} + ] + end + ) do + fetched = fetch_connections(route_stop) + assert [%Route{}, %Route{}] = fetched.connections + assert Enum.find(fetched.connections, &(&1.id == fetched.route.id)) == nil + assert Enum.find(fetched.connections, &(&1.description == :rail_replacement_bus)) == nil + end end end