Packages

A library for creating test simulators for external services.

Current section

Files

Jump to
sims priv templates sims.gen.http_basic simulator state_server state.ex.eex
Raw

priv/templates/sims.gen.http_basic/simulator/state_server/state.ex.eex

defmodule <%= inspect @module %> do
@moduledoc false
@type t :: map()
@spec new() :: t
def new do
%{
greeting: "It works!"<%= if @simulator.options.response_stubs? do %>,
response_stubs: %{}<% end %>
}
end
@spec get_greeting(t) :: String.t()
def get_greeting(state) do
state.greeting
end
@spec set_greeting(t, String.t()) :: t
def set_greeting(state, greeting) do
%{state | greeting: greeting}
end
<%= if @simulator.options.response_stubs? do %>
def get_response_stub(state, route_id) do
with nil <- state.response_stubs[:all] do
state.response_stubs[route_id]
end
end
def stub_response(state, route_id, response_id) do
response_stubs = Map.put(state.response_stubs, route_id, response_id)
%{state | response_stubs: response_stubs}
end
def clear_stubbed_responses(state, :all) do
%{state | response_stubs: %{}}
end
def clear_stubbed_responses(state, route_id) do
Map.update!(state, :response_stubs, &Map.delete(&1, route_id))
end
<% end %>
end