Skip to content

Commit ed08e23

Browse files
authored
fix(alerts): Provide all applicable service ranges when only given start time (#3440)
1 parent 335523f commit ed08e23

2 files changed

Lines changed: 12 additions & 7 deletions

File tree

lib/dotcom/utils/service_date_time.ex

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -244,12 +244,17 @@ defmodule Dotcom.Utils.ServiceDateTime do
244244

245245
@doc """
246246
Returns service ranges between two datetimes, inclusive.
247-
One datetime can be given, which will return only the service range for the given datetime.
247+
If only the stop datetime is provided, returns the service range for that datetime.
248+
If only the start datetime is provided, returns all service ranges from that datetime onward.
248249
"""
249250
@spec service_range_range(DateTime.t() | nil, DateTime.t() | nil) :: [named_service_range()]
250251
def service_range_range(nil, nil), do: []
251-
def service_range_range(start, nil) when not is_nil(start), do: [service_range(start)]
252-
def service_range_range(nil, stop) when not is_nil(stop), do: [service_range(stop)]
252+
def service_range_range(nil, stop), do: [service_range(stop)]
253+
254+
def service_range_range(start, nil) do
255+
all_service_ranges()
256+
|> Enum.drop_while(&(&1 != service_range(start)))
257+
end
253258

254259
def service_range_range(start, stop) do
255260
start_index = service_range_index(start)

test/dotcom/utils/service_date_time_test.exs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -241,20 +241,20 @@ defmodule Dotcom.Utils.ServiceDateTimeTest do
241241
assert service_range_range(today, next_week) == [:today, :this_week, :next_week]
242242
end
243243

244-
test "returns one service range when given only one start datetime" do
244+
test "returns one service range when given only one stop datetime" do
245245
# Setup
246246
next_week = service_range_next_week() |> random_time_range_date_time()
247247

248248
# Exercise / Verify
249-
assert service_range_range(next_week, nil) == [:next_week]
249+
assert service_range_range(nil, next_week) == [:next_week]
250250
end
251251

252-
test "returns one service range when given only one stop datetime" do
252+
test "returns all service ranges from the start datetime onward when given only one start datetime" do
253253
# Setup
254254
next_week = service_range_next_week() |> random_time_range_date_time()
255255

256256
# Exercise / Verify
257-
assert service_range_range(nil, next_week) == [:next_week]
257+
assert service_range_range(next_week, nil) == [:next_week, :after_next_week]
258258
end
259259
end
260260

0 commit comments

Comments
 (0)