test/openagents/surface_eval_test.exs

58e6347eeb72 · 1002 B

defmodule OpenAgents.SurfaceEvalTest do
  use ExUnit.Case, async: true
  alias OpenAgents.Context.Composer

  test "cross-surface corpus is versioned and text and voice retain one Sarah identity" do
    corpus =
      "priv/sarah/evals/surfaces/identity-authority.v1.json"
      |> File.read!()
      |> Jason.decode!()

    assert corpus["schema"] == "sarah.surface_eval_corpus.v1"

    assert Enum.map(corpus["cases"], & &1["id"]) == [
             "text-voice-one-identity",
             "external-effect-under-read-authority",
             "oversized-catalog",
             "unavailable-executor"
           ]

    text = Composer.compose!(surface: "text")
    voice = Composer.compose!(surface: "voice")

    assert {text.persona_id, text.persona_digest} == {voice.persona_id, voice.persona_digest}
    assert {text.role_id, text.role_digest} == {voice.role_id, voice.role_digest}
    assert text.role_selection["surface"] == "text"
    assert voice.role_selection["surface"] == "voice"
  end
end