diff --git a/lib/wabanex_web/schema/types/custom/date_range.ex b/lib/wabanex_web/schema/types/custom/date_range.ex index 45e2dd3..ebb1e40 100644 --- a/lib/wabanex_web/schema/types/custom/date_range.ex +++ b/lib/wabanex_web/schema/types/custom/date_range.ex @@ -17,10 +17,11 @@ defmodule WabanexWeb.Schema.Types.Custom.DateRange do end @spec serialize_range(PgRanges.DateRange.t()) :: String.t() - @spec serialize_range(list(DateTime.t() | nil)) :: String.t() + @spec serialize_range(list(DateTime.t() | nil | atom)) :: String.t() defp serialize_range(%PgRanges.DateRange{lower: start_range, upper: end_range}), do: serialize_range([start_range, end_range]) + defp serialize_range([start_range, :unbound]), do: serialize_range([start_range, nil]) defp serialize_range([start_range, nil]), do: "#{Date.to_iso8601(start_range)}," defp serialize_range([start_range, end_range]), diff --git a/test/wabanex_web/schema/types/custom/date_range_test.exs b/test/wabanex_web/schema/types/custom/date_range_test.exs index 2a1cb99..90077fb 100644 --- a/test/wabanex_web/schema/types/custom/date_range_test.exs +++ b/test/wabanex_web/schema/types/custom/date_range_test.exs @@ -28,6 +28,7 @@ defmodule WabanexWeb.Schema.Types.Custom.DateRangeTest do test "serialize a list of dates as a list of ISO8601 date strings" do assert "1978-12-15,1980-02-13" == serialize(:date_range, [~D[1978-12-15], ~D[1980-02-13]]) assert "1978-12-15," == serialize(:date_range, [~D[1978-12-15], nil]) + assert "1978-12-15," == serialize(:date_range, [~D[1978-12-15], :unbound]) end test "serialize a postgres range as a list of ISO8601 date strings" do @@ -35,6 +36,7 @@ defmodule WabanexWeb.Schema.Types.Custom.DateRangeTest do serialize(:date_range, DateRange.new(~D[1978-12-15], ~D[1980-02-13])) assert "1978-12-15," == serialize(:date_range, DateRange.new(~D[1978-12-15], nil)) + assert "1978-12-15," == serialize(:date_range, DateRange.new(~D[1978-12-15], :unbound)) end test "can be parsed from a string of ISO8601" do