# `ExUtcp.Transports.WebRTC.Testable`
[🔗](https://github.com/universal-tool-calling-protocol/elixir-utcp/blob/main/lib/ex_utcp/transports/webrtc/testable.ex#L1)

Testable version of WebRTC transport that can use mocks.

# `t`

```elixir
@type t() :: %ExUtcp.Transports.WebRTC.Testable{
  connection_module: module(),
  connection_timeout: non_neg_integer(),
  connections: %{required(String.t()) =&gt; pid()},
  genserver_module: module(),
  ice_servers: [map()],
  providers: %{required(String.t()) =&gt; map()},
  signaling_server: String.t()
}
```

# `call_tool`

# `call_tool_stream`

# `child_spec`

Returns a specification to start this module under a supervisor.

See `Supervisor`.

# `clear_mocks`

Clear mocks after testing.

# `close`

# `deregister_tool_provider`

# `get_connection_module`

Get the connection module (real or mock).

# `new`

```elixir
@spec new(keyword()) :: t()
```

Creates a new testable WebRTC transport.

# `register_tool_provider`

# `set_mocks`

Set mocks for testing.

# `start_link`

```elixir
@spec start_link(keyword()) :: {:ok, pid()} | {:error, term()}
```

Starts the testable WebRTC transport GenServer.

---

*Consult [api-reference.md](api-reference.md) for complete listing*
