Jido.Chat.AdapterTestKit.MockTransport (Jido Chat v1.2.0)

Copy Markdown View Source

A deterministic provider-free transport for adapter tests.

The transport records calls in order. A response queue can be set for each operation. When a queue is empty, request/4 returns its supplied default.

Summary

Functions

Returns all calls, or only calls for one operation.

Returns a specification to start this module under a supervisor.

Records a request and returns the next queued response or the default.

Clears recorded calls and queued responses.

Starts a mock transport.

Replaces the response queue for an operation.

Types

call()

@type call() :: %{operation: operation(), payload: term(), sequence: pos_integer()}

operation()

@type operation() :: atom()

server()

@type server() :: GenServer.server()

Functions

calls(server, operation \\ nil)

@spec calls(server(), operation() | nil) :: [call()]

Returns all calls, or only calls for one operation.

child_spec(init_arg)

Returns a specification to start this module under a supervisor.

See Supervisor.

request(server, operation, payload, default \\ {:error, :unstubbed})

@spec request(server(), operation(), term(), term()) :: term()

Records a request and returns the next queued response or the default.

reset(server)

@spec reset(server()) :: :ok

Clears recorded calls and queued responses.

start_link(opts \\ [])

@spec start_link(keyword()) :: GenServer.on_start()

Starts a mock transport.

stub(server, operation, responses)

@spec stub(server(), operation(), term() | [term()]) :: :ok

Replaces the response queue for an operation.