From d8c8f5379175dc9e30172015f51569c040afa25d Mon Sep 17 00:00:00 2001 From: Josh Larson Date: Wed, 29 Jan 2025 17:55:41 -0500 Subject: [PATCH] refactor: Rename Groups.groups/2 to Subway.subway_status/2 --- lib/dotcom/system_status.ex | 7 +++ .../system_status/{groups.ex => subway.ex} | 12 ++--- lib/dotcom_web/live/system_status.ex | 4 +- .../{groups_test.exs => subway_test.exs} | 46 +++++++++---------- 4 files changed, 38 insertions(+), 31 deletions(-) rename lib/dotcom/system_status/{groups.ex => subway.ex} (97%) rename test/dotcom/system_status/{groups_test.exs => subway_test.exs} (93%) diff --git a/lib/dotcom/system_status.ex b/lib/dotcom/system_status.ex index c6e00440bf..485a6da458 100644 --- a/lib/dotcom/system_status.ex +++ b/lib/dotcom/system_status.ex @@ -36,4 +36,11 @@ defmodule Dotcom.SystemStatus do |> SystemStatus.Alerts.for_day(datetime) |> SystemStatus.Alerts.filter_relevant() end + + @doc """ + Returns a map indicating the subway status for each of the subway lines. + """ + def subway_status() do + subway_alerts_for_today() |> SystemStatus.Subway.subway_status(Timex.now()) + end end diff --git a/lib/dotcom/system_status/groups.ex b/lib/dotcom/system_status/subway.ex similarity index 97% rename from lib/dotcom/system_status/groups.ex rename to lib/dotcom/system_status/subway.ex index f3a27b4351..a1f89632a4 100644 --- a/lib/dotcom/system_status/groups.ex +++ b/lib/dotcom/system_status/subway.ex @@ -1,4 +1,4 @@ -defmodule Dotcom.SystemStatus.Groups do +defmodule Dotcom.SystemStatus.Subway do @moduledoc """ A module that groups alerts into statuses for the system status @@ -22,7 +22,7 @@ defmodule Dotcom.SystemStatus.Groups do screen. See `Dotcom.SystemStatus` for more details. ## Example (no alerts) - iex> Dotcom.SystemStatus.Groups.groups([], Timex.now()) + iex> Dotcom.SystemStatus.Subway.subway_status([], Timex.now()) %{ "Blue" => [%{branch_ids: [], status_entries: [%{time: :current, status: :normal, multiple: false}]}], "Orange" => [%{branch_ids: [], status_entries: [%{time: :current, status: :normal, multiple: false}]}], @@ -39,7 +39,7 @@ defmodule Dotcom.SystemStatus.Groups do ...> active_period: [{Timex.beginning_of_day(Timex.now()), nil}] ...> } ...> ] - iex> Dotcom.SystemStatus.Groups.groups(alerts, Timex.now()) + iex> Dotcom.SystemStatus.Subway.subway_status(alerts, Timex.now()) %{ "Blue" => [%{branch_ids: [], status_entries: [%{time: :current, status: :normal, multiple: false}]}], "Orange" => [ @@ -74,7 +74,7 @@ defmodule Dotcom.SystemStatus.Groups do ...> active_period: [{Timex.beginning_of_day(Timex.now()), nil}] ...> } ...> ] - iex> Dotcom.SystemStatus.Groups.groups(alerts, Timex.now()) + iex> Dotcom.SystemStatus.Subway.subway_status(alerts, Timex.now()) %{ "Blue" => [%{branch_ids: [], status_entries: [%{time: :current, status: :normal, multiple: false}]}], "Orange" => [%{branch_ids: [], status_entries: [%{time: :current, status: :normal, multiple: false}]}], @@ -107,7 +107,7 @@ defmodule Dotcom.SystemStatus.Groups do ...> active_period: [{Timex.beginning_of_day(Timex.now()), nil}] ...> } ...> ] - iex> Dotcom.SystemStatus.Groups.groups(alerts, Timex.now()) + iex> Dotcom.SystemStatus.Subway.subway_status(alerts, Timex.now()) %{ "Blue" => [%{branch_ids: [], status_entries: [%{time: :current, status: :normal, multiple: false}]}], "Orange" => [%{branch_ids: [], status_entries: [%{time: :current, status: :normal, multiple: false}]}], @@ -129,7 +129,7 @@ defmodule Dotcom.SystemStatus.Groups do } """ - def groups(alerts, time) do + def subway_status(alerts, time) do @lines |> Map.new(fn line -> %{route_id: route_id, branches_with_statuses: branches_with_statuses} = diff --git a/lib/dotcom_web/live/system_status.ex b/lib/dotcom_web/live/system_status.ex index 813eb7fb29..1bfb55859c 100644 --- a/lib/dotcom_web/live/system_status.ex +++ b/lib/dotcom_web/live/system_status.ex @@ -7,11 +7,11 @@ defmodule DotcomWeb.Live.SystemStatus do use DotcomWeb, :live_view alias Dotcom.SystemStatus - alias Dotcom.SystemStatus.Groups def render(assigns) do alerts = SystemStatus.subway_alerts_for_today() - statuses = Groups.groups(alerts, Timex.now()) + + statuses = SystemStatus.subway_status() assigns = assigns diff --git a/test/dotcom/system_status/groups_test.exs b/test/dotcom/system_status/subway_test.exs similarity index 93% rename from test/dotcom/system_status/groups_test.exs rename to test/dotcom/system_status/subway_test.exs index b44ac1c40b..643ebd05f4 100644 --- a/test/dotcom/system_status/groups_test.exs +++ b/test/dotcom/system_status/subway_test.exs @@ -1,8 +1,8 @@ -defmodule Dotcom.SystemStatus.GroupsTest do +defmodule Dotcom.SystemStatus.SubwayTest do use ExUnit.Case, async: true - doctest Dotcom.SystemStatus.Groups + doctest Dotcom.SystemStatus.Subway - alias Dotcom.SystemStatus.Groups + alias Dotcom.SystemStatus.Subway alias Test.Support.Factories.Alerts.Alert alias Test.Support.Factories.Alerts.InformedEntity alias Test.Support.Factories.Alerts.InformedEntitySet @@ -16,7 +16,7 @@ defmodule Dotcom.SystemStatus.GroupsTest do describe "heavy rail groups" do test "when there are no alerts, lists each line as normal" do # Exercise - groups = Groups.groups([], time_today()) + groups = Subway.subway_status([], time_today()) # Verify @all_rail_lines @@ -36,7 +36,7 @@ defmodule Dotcom.SystemStatus.GroupsTest do alerts = [current_alert(route_id: affected_route_id, time: time, effect: effect)] # Exercise - groups = Groups.groups(alerts, time) + groups = Subway.subway_status(alerts, time) # Verify [status] = @@ -55,7 +55,7 @@ defmodule Dotcom.SystemStatus.GroupsTest do alerts = [current_alert(route_id: affected_route_id, time: time, effect: effect)] # Exercise - groups = Groups.groups(alerts, time) + groups = Subway.subway_status(alerts, time) # Verify [multiple] = @@ -73,7 +73,7 @@ defmodule Dotcom.SystemStatus.GroupsTest do alerts = [current_alert(route_id: affected_route_id, time: time)] # Exercise - groups = Groups.groups(alerts, time) + groups = Subway.subway_status(alerts, time) # Verify times = @@ -92,7 +92,7 @@ defmodule Dotcom.SystemStatus.GroupsTest do alerts = [current_alert(route_id: affected_route_id, time: time)] # Exercise - groups = Groups.groups(alerts, time) + groups = Subway.subway_status(alerts, time) # Verify @heavy_rail_lines @@ -117,7 +117,7 @@ defmodule Dotcom.SystemStatus.GroupsTest do alerts = [future_alert(route_id: affected_route_id, start_time: alert_start_time)] # Exercise - groups = Groups.groups(alerts, time) + groups = Subway.subway_status(alerts, time) # Verify times = @@ -145,7 +145,7 @@ defmodule Dotcom.SystemStatus.GroupsTest do ] # Exercise - groups = Groups.groups(alerts, time) + groups = Subway.subway_status(alerts, time) # Verify statuses = @@ -178,7 +178,7 @@ defmodule Dotcom.SystemStatus.GroupsTest do ] # Exercise - groups = Groups.groups(alerts, time) + groups = Subway.subway_status(alerts, time) # Verify times = @@ -206,7 +206,7 @@ defmodule Dotcom.SystemStatus.GroupsTest do ] # Exercise - groups = Groups.groups(alerts, time) + groups = Subway.subway_status(alerts, time) # Verify statuses = @@ -231,7 +231,7 @@ defmodule Dotcom.SystemStatus.GroupsTest do ] # Exercise - groups = Groups.groups(alerts, time) + groups = Subway.subway_status(alerts, time) # Verify times = @@ -256,7 +256,7 @@ defmodule Dotcom.SystemStatus.GroupsTest do ] # Exercise - groups = Groups.groups(alerts, time) + groups = Subway.subway_status(alerts, time) # Verify multiples = @@ -282,7 +282,7 @@ defmodule Dotcom.SystemStatus.GroupsTest do ] # Exercise - groups = Groups.groups(alerts, time) + groups = Subway.subway_status(alerts, time) # Verify multiples = @@ -308,7 +308,7 @@ defmodule Dotcom.SystemStatus.GroupsTest do end) # Exercise - groups = Groups.groups(alerts, time) + groups = Subway.subway_status(alerts, time) # Verify statuses = @@ -329,7 +329,7 @@ defmodule Dotcom.SystemStatus.GroupsTest do alerts = [current_alert(route_id: affected_branch_id, effect: effect, time: time)] # Exercise - groups = Groups.groups(alerts, time) + groups = Subway.subway_status(alerts, time) # Verify statuses = @@ -350,7 +350,7 @@ defmodule Dotcom.SystemStatus.GroupsTest do alerts = [current_alert(route_id: affected_branch_id, effect: effect, time: time)] # Exercise - groups = Groups.groups(alerts, time) + groups = Subway.subway_status(alerts, time) # Verify normal_branch_ids = @green_line_branches |> List.delete(affected_branch_id) @@ -373,7 +373,7 @@ defmodule Dotcom.SystemStatus.GroupsTest do alerts = [current_alert(route_id: affected_branch_id, effect: effect, time: time)] # Exercise - groups = Groups.groups(alerts, time) + groups = Subway.subway_status(alerts, time) # Verify normal_branch_ids = @green_line_branches |> List.delete(affected_branch_id) @@ -403,7 +403,7 @@ defmodule Dotcom.SystemStatus.GroupsTest do ] # Exercise - groups = Groups.groups(alerts, time) + groups = Subway.subway_status(alerts, time) # Verify affected_branch_ids = @@ -424,7 +424,7 @@ defmodule Dotcom.SystemStatus.GroupsTest do alerts = [current_alert(route_id: "Red", time: time)] # Exercise - groups = Groups.groups(alerts, time) + groups = Subway.subway_status(alerts, time) # Verify red_line_statuses = groups |> Map.fetch!("Red") @@ -444,7 +444,7 @@ defmodule Dotcom.SystemStatus.GroupsTest do alerts = [current_alert(route_id: "Mattapan", effect: effect, time: time)] # Exercise - groups = Groups.groups(alerts, time) + groups = Subway.subway_status(alerts, time) # Verify statuses = @@ -462,7 +462,7 @@ defmodule Dotcom.SystemStatus.GroupsTest do alerts = [current_alert(route_id: "Mattapan", time: time)] # Exercise - groups = Groups.groups(alerts, time) + groups = Subway.subway_status(alerts, time) # Verify statuses =