summaryrefslogtreecommitdiff
path: root/test/lib/powerdnsex/config_test.exs
diff options
context:
space:
mode:
Diffstat (limited to 'test/lib/powerdnsex/config_test.exs')
-rw-r--r--test/lib/powerdnsex/config_test.exs59
1 files changed, 59 insertions, 0 deletions
diff --git a/test/lib/powerdnsex/config_test.exs b/test/lib/powerdnsex/config_test.exs
new file mode 100644
index 0000000..adb212a
--- /dev/null
+++ b/test/lib/powerdnsex/config_test.exs
@@ -0,0 +1,59 @@
+defmodule PowerDNSex.ConfigTest do
+
+ use ExUnit.Case, async: true
+
+ alias PowerDNSex.FakeConfig, as: Config
+
+ setup with_valid_url, do: Config.set_url
+ setup with_valid_token, do: Config.set_token
+ setup with_valid_token_and_url, do: Config.set_url && Config.set_token
+
+ describe "Config.powerdns_token/0" do
+ @tag :configs
+ test "Using Env vars", with_valid_url do
+ env_token = "3nv_S3cr37_T0k3n"
+ System.put_env("POWERDNS_TOKEN", env_token)
+ Application.put_env(:powerdns, :token, {:system, "POWERDNS_TOKEN"})
+ assert PowerDNSex.Config.powerdns_token == env_token
+ end
+
+ @tag :configs
+ test "using application config", with_valid_token_and_url do
+ assert PowerDNSex.Config.powerdns_token == Config.token
+ end
+
+ @tag :configs
+ test "given none token config", with_valid_url do
+ Application.delete_env(:powerdns, :token)
+ expected_error = "[PowerDNSex] PowerDNS token not configured."
+
+ assert_raise RuntimeError, expected_error, fn ->
+ PowerDNSex.Config.powerdns_token
+ end
+ end
+ end
+
+ describe "Config.powerdns_url/0" do
+ @tag :configs
+ test "Using Env vars", with_valid_token do
+ env_url = "https://env-powerdns.test"
+ System.put_env("POWERDNS_URL", env_url)
+ Application.put_env(:powerdns, :url, {:system, "POWERDNS_URL"})
+ assert PowerDNSex.Config.powerdns_url == env_url
+ end
+
+ @tag :configs
+ test "using application config", with_valid_token_and_url do
+ assert PowerDNSex.Config.powerdns_url == Config.url
+ end
+
+ @tag :configs
+ test "given none url config", with_valid_token do
+ Application.delete_env(:powerdns, :url)
+ expected_error = "[PowerDNSex] PowerDNS url not configured."
+ assert_raise RuntimeError, expected_error, fn ->
+ PowerDNSex.Config.powerdns_url
+ end
+ end
+ end
+end