From 6529199871e67a8fbd772bcdf99b9fd8fa866d8e Mon Sep 17 00:00:00 2001 From: Anantha Kumaran Date: Mon, 18 Nov 2019 11:34:12 +0530 Subject: [PATCH] document the test api --- lib/exq/mock.ex | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/lib/exq/mock.ex b/lib/exq/mock.ex index 20d8e9b0..49f8a932 100644 --- a/lib/exq/mock.ex +++ b/lib/exq/mock.ex @@ -6,11 +6,17 @@ defmodule Exq.Mock do @timeout 30000 defmodule State do + @moduledoc false defstruct default_mode: :redis, jobs: %{}, modes: %{} end ### Public api + @doc """ + Start Mock server + + * `mode` - The default mode that's used for all tests. See `set_mode/1` for details. + """ def start_link(options \\ []) do queue_adapter = Config.get(:queue_adapter) @@ -25,10 +31,22 @@ defmodule Exq.Mock do GenServer.start_link(__MODULE__, options, name: __MODULE__) end + @doc """ + Set the mode for current test + + * `:redis` - jobs get enqueued and processed via redis. + * `:fake` - jobs get enqueued in a local queue + * `:inline` - jobs get executed in the same process + """ def set_mode(mode) when mode in [:redis, :inline, :fake] do GenServer.call(__MODULE__, {:mode, self(), mode}, @timeout) end + @doc """ + List of enqueued jobs + + This only works if the mode is set to `:fake` + """ def jobs do GenServer.call(__MODULE__, {:jobs, self()}, @timeout) end @@ -40,6 +58,7 @@ defmodule Exq.Mock do {:ok, %State{default_mode: Keyword.get(options, :mode, :redis)}} end + @doc false def enqueue(pid, queue, worker, args, options) do {:ok, runnable} = GenServer.call( @@ -51,6 +70,7 @@ defmodule Exq.Mock do runnable.() end + @doc false def enqueue_at(pid, queue, time, worker, args, options) do {:ok, runnable} = GenServer.call( @@ -62,6 +82,7 @@ defmodule Exq.Mock do runnable.() end + @doc false def enqueue_in(pid, queue, offset, worker, args, options) do {:ok, runnable} = GenServer.call(