Current section
Files
Jump to
Current section
Files
test/support/mock_config.ex
defmodule IbkrApi.MockConfig do
@moduledoc """
Mock configuration module for testing rate limiting with custom configurations.
"""
def new(rate_limits \\ []) do
%{rate_limits: rate_limits}
end
def rate_limit(%{rate_limits: rate_limits}, :global) do
global_config = Keyword.get(rate_limits, :global, [limit: 50, time_window_ms: 1_000])
%{
limit: Keyword.get(global_config, :limit, 50),
time_window_ms: Keyword.get(global_config, :time_window_ms, 1_000)
}
end
def rate_limit(%{rate_limits: rate_limits}, endpoint) do
endpoint_config = Keyword.get(rate_limits, endpoint, [limit: 10, time_window_ms: 1_000])
%{
limit: Keyword.get(endpoint_config, :limit, 10),
time_window_ms: Keyword.get(endpoint_config, :time_window_ms, 1_000)
}
end
end