import { cleanup, render, screen } from "@testing-library/react";
import { afterEach, describe, expect, it } from "vitest";
import {
AgentGUIRuntimeProvider,
resetAgentGUIRuntimeForTests,
useAgentGUIRuntime,
type AgentGUIRuntime
} from "./agentActivityRuntime";
function createRuntime(origin: string): AgentGUIRuntime {
return { origin } as unknown as AgentGUIRuntime;
}
function RuntimeIdentity({ testId }: { testId: string }) {
const runtime = useAgentGUIRuntime();
return
{runtime.origin}
;
}
afterEach(() => {
cleanup();
resetAgentGUIRuntimeForTests();
});
describe("AgentGUIRuntimeProvider identity isolation", () => {
it("resolves coexisting runtimes only from the nearest provider", () => {
render(
<>
>
);
expect(screen.getByTestId("local-runtime")).toHaveTextContent(
"origin-local"
);
expect(screen.getByTestId("shared-runtime")).toHaveTextContent(
"origin-shared"
);
});
it("does not let a later sibling provider replace an existing consumer", () => {
const view = render(
);
view.rerender(
<>
>
);
expect(screen.getByTestId("local-runtime")).toHaveTextContent(
"origin-local"
);
});
});