Write/Fix tests

This commit is contained in:
connor rigby 2018-01-22 11:00:25 -08:00
parent 168d90c6f9
commit be1d0150ef
2 changed files with 4 additions and 73 deletions

View file

@ -1,4 +1,5 @@
defmodule Farmbot.Bootstrap.SettingsSync do
@moduledoc "Handles uploading and downloading of FBOS configs."
use Task, restart: :transient
use Farmbot.Logger
import Farmbot.System.ConfigStorage, only: [get_config_value: 3, update_config_value: 4, get_config_as_map: 0]
@ -31,13 +32,13 @@ defmodule Farmbot.Bootstrap.SettingsSync do
case new_value do
val when is_boolean(val) -> update_config_value(:bool, "settings", key, new_value)
val when is_binary(val) -> update_config_value(:string, "settings", key, new_value)
val when is_number(val) -> update_config_value(:float, "settings", key, new_value)
val when is_number(val) -> update_config_value(:float, "settings", key, new_value / 1)
end
end
end)
end
def do_sync_settings(api_data) do
def do_sync_settings(%{"api_migrated" => true} = api_data) do
Logger.info 3, "API is the source of truth; Downloading data."
old_config = get_config_as_map()["settings"]
apply_map(old_config, api_data)
@ -58,7 +59,7 @@ defmodule Farmbot.Bootstrap.SettingsSync do
firmware_hardware = get_config_value(:string, "settings", "firmware_hardware")
network_not_found_timer = get_config_value(:float, "settings", "network_not_found_timer")
payload = %{
# api_migrated: true,
api_migrated: true,
auto_sync: auto_sync,
beta_opt_in: beta_opt_in,
disable_factory_reset: disable_factory_reset,

View file

@ -8,74 +8,4 @@ defmodule Farmbot.CeleryScript.AST.Node.ConfigUpdateTest do
{:ok, env} = ConfigUpdate.execute(%{package: :farmbot_os}, [], env)
assert_cs_env_mutation(ConfigUpdate, env)
end
test "sets network_not_found_timer", %{env: env} do
ConfigUpdate.execute(%{package: :farmbot_os}, pair("network_not_found_timer", 1000), env)
|> assert_cs_success()
assert ConfigStorage.get_config_value(:float, "settings", "network_not_found_timer") == 1000.0
end
test "Wont set network_not_found_timer to a negative number", %{env: env} do
old = ConfigStorage.get_config_value(:float, "settings", "network_not_found_timer")
ConfigUpdate.execute(%{package: :farmbot_os}, pair("network_not_found_timer", -1), env)
|> assert_cs_fail("network_not_found_timer must be greater than zero")
assert ConfigStorage.get_config_value(:float, "settings", "network_not_found_timer") == old
end
test "sets os auto update", %{env: env} do
ConfigUpdate.execute(%{package: :farmbot_os}, pair("os_auto_update", true), env) |> assert_cs_success()
assert ConfigStorage.get_config_value(:bool, "settings", "os_auto_update")
ConfigUpdate.execute(%{package: :farmbot_os}, pair("os_auto_update", false), env) |> assert_cs_success()
refute ConfigStorage.get_config_value(:bool, "settings", "os_auto_update")
end
test "sets auto sync", %{env: env} do
ConfigUpdate.execute(%{package: :farmbot_os}, pair("auto_sync", true), env) |> assert_cs_success()
assert ConfigStorage.get_config_value(:bool, "settings", "auto_sync")
ConfigUpdate.execute(%{package: :farmbot_os}, pair("auto_sync", false), env) |> assert_cs_success()
refute ConfigStorage.get_config_value(:bool, "settings", "auto_sync")
end
test "can not set arduino hardware to unknown setting", %{env: env} do
ConfigUpdate.execute(%{package: :farmbot_os}, pair("firmware_hardware", "whoops"), env)
|> assert_cs_fail("unknown hardware: whoops")
refute ConfigStorage.get_config_value(:string, "settings", "firmware_hardware") == "whoops"
end
test "gives decent error on unknown onfig files.", %{env: env} do
ConfigUpdate.execute(%{package: :farmbot_os}, pair("some_other_config", "whoops"), env)
|> assert_cs_fail("unknown config: some_other_config")
end
test "can set float values with an integer", %{env: env} do
ConfigUpdate.execute(%{package: :farmbot_os}, pair("network_not_found_timer", 1000), env)
|> assert_cs_success()
end
test "can set float values with a float", %{env: env} do
ConfigUpdate.execute(%{package: :farmbot_os}, pair("network_not_found_timer", 1000.00), env)
|> assert_cs_success()
end
test "allows setting multiple configs", %{env: env} do
pairs = pairs([{"network_not_found_timer", 10.0}, {"firmware_hardware", "farmduino"}])
ConfigUpdate.execute(%{package: :farmbot_os}, pairs, env) |> assert_cs_success()
assert ConfigStorage.get_config_value(:string, "settings", "firmware_hardware") == "farmduino"
assert ConfigStorage.get_config_value(:float, "settings", "network_not_found_timer") == 10.0
end
defp pair(key, val) do
{:ok, pair, _} = Pair.execute(%{label: key, value: val}, [], struct(Macro.Env, []))
[pair]
end
defp pairs(pairs) do
Enum.map(pairs, fn({key, val}) -> pair(key, val) end) |> List.flatten()
end
end