Inference.Testkit.AdapterCase provides small conformance helpers for adapter
tests.
The helpers are normal library functions. They do not require ExUnit at runtime and can be called from ExUnit tests in adapter-owning projects.
Example:
defmodule MyAdapterTest do
use ExUnit.Case, async: true
alias Inference.Testkit.AdapterCase
test "adapter returns text" do
response =
AdapterCase.assert_text_completion(MyAdapter,
adapter_opts: [fake_backend: MyFakeBackend]
)
assert response.text != ""
end
endThe testkit covers:
- successful text completion;
- provider error normalization;
- unsupported stream behavior;
- metadata redaction;
- trace metadata redaction.
Default tests should use fake provider modules. Live provider tests belong in explicitly gated examples or smoke-test suites.
Adapter-owning projects should add their own tests for option precedence and response-field preservation when they depend on adapter-specific options. The shared testkit is a floor, not proof that a governed adapter preserved every downstream contract field.