diff --git a/.sampo/changesets/cantankerous-forgemaster-louhi.md b/.sampo/changesets/cantankerous-forgemaster-louhi.md new file mode 100644 index 0000000..dbb93b1 --- /dev/null +++ b/.sampo/changesets/cantankerous-forgemaster-louhi.md @@ -0,0 +1,5 @@ +--- +hex/posthog: patch +--- + +Default api_host when omitted diff --git a/lib/posthog/config.ex b/lib/posthog/config.ex index af62033..0336131 100644 --- a/lib/posthog/config.ex +++ b/lib/posthog/config.ex @@ -1,6 +1,8 @@ defmodule PostHog.Config do require Logger + @default_api_host "https://us.i.posthog.com" + @shared_schema [ test_mode: [ type: :boolean, @@ -12,7 +14,7 @@ defmodule PostHog.Config do @configuration_schema [ api_host: [ type: :string, - required: true, + default: @default_api_host, doc: "`https://us.i.posthog.com` for US cloud or `https://eu.i.posthog.com` for EU cloud" ], @@ -108,8 +110,6 @@ defmodule PostHog.Config do @compiled_configuration_schema NimbleOptions.new!(@configuration_schema) @compiled_convenience_schema NimbleOptions.new!(@convenience_schema) - @default_api_host "https://us.i.posthog.com" - @system_global_properties %{ "$lib": "posthog-elixir", "$lib_version": Mix.Project.config()[:version] diff --git a/test/posthog/config_test.exs b/test/posthog/config_test.exs index d09ef88..2047d30 100644 --- a/test/posthog/config_test.exs +++ b/test/posthog/config_test.exs @@ -25,6 +25,23 @@ defmodule PostHog.ConfigTest do assert config.api_host == "https://eu.i.posthog.com" end + test "validate defaults a missing api_host" do + expect(PostHog.API.Mock, :client, fn api_key, api_host -> + assert api_key == "project_api_key" + assert api_host == "https://us.i.posthog.com" + + %PostHog.API.Client{client: :stub_client, module: PostHog.API.Mock} + end) + + assert {:ok, config} = + PostHog.Config.validate( + api_key: "project_api_key", + api_client_module: PostHog.API.Mock + ) + + assert config.api_host == "https://us.i.posthog.com" + end + test "validate defaults a blank api_host after trimming whitespace" do expect(PostHog.API.Mock, :client, fn api_key, api_host -> assert api_key == "project_api_key"