diff --git a/lib/beacon/web/data_source.ex b/lib/beacon/web/data_source.ex index 8b3f4e96e..4c9b0b062 100644 --- a/lib/beacon/web/data_source.ex +++ b/lib/beacon/web/data_source.ex @@ -3,6 +3,8 @@ defmodule Beacon.Web.DataSource do require Logger + def live_data(site, path_info, query_params \\ %{}) + def live_data(site, path_info, query_params) when is_atom(site) and is_list(path_info) and is_map(query_params) do Beacon.apply_mfa(site, Beacon.Loader.fetch_live_data_module(site), :live_data, [path_info, query_params]) end diff --git a/test/beacon_web/data_source_test.exs b/test/beacon_web/data_source_test.exs index f35eaffd0..7ccb7a8fc 100644 --- a/test/beacon_web/data_source_test.exs +++ b/test/beacon_web/data_source_test.exs @@ -15,10 +15,18 @@ defmodule Beacon.Web.DataSourceTest do [site: site] end - test "live_data", %{site: site} do - live_data = beacon_live_data_fixture() - beacon_live_data_assign_fixture(live_data: live_data, format: :text, key: "name", value: "beacon") - assert DataSource.live_data(site, ["foo", "bar"], %{}) == %{name: "beacon"} + describe "live_data" do + test "with existing data", %{site: site} do + live_data = beacon_live_data_fixture() + beacon_live_data_assign_fixture(live_data: live_data, format: :text, key: "name", value: "beacon") + assert DataSource.live_data(site, ["foo", "bar"], %{}) == %{name: "beacon"} + end + + test "query params defaults to empty map", %{site: site} do + live_data = beacon_live_data_fixture() + beacon_live_data_assign_fixture(live_data: live_data, format: :text, key: "name", value: "beacon") + assert DataSource.live_data(site, ["foo", "bar"]) == %{name: "beacon"} + end end describe "page_title" do