import assert from "node:assert/strict"; import { readFile } from "node:fs/promises"; import { describe, it } from "node:test"; const providerSource = await readFile( new URL("./agent-realtime-provider.tsx", import.meta.url), "utf8", ).catch(() => ""); const workbenchLayoutSource = await readFile( new URL("../app/workbench/layout.tsx", import.meta.url), "utf8", ); const dashboardConversationsPageSource = await readFile( new URL("../app/dashboard/conversations/page.tsx", import.meta.url), "utf8", ); const conversationWorkbenchSource = await readFile( new URL("../app/dashboard/conversations/_components/conversation-workbench.tsx", import.meta.url), "utf8", ); describe("AgentRealtimeProvider placement", () => { it("owns the agent realtime hook", () => { assert.match(providerSource, /export function AgentRealtimeProvider/); assert.match(providerSource, /useAgentConversationRealtime\(\)/); }); it("is mounted at the workbench layout level", () => { assert.match(workbenchLayoutSource, /import \{ AgentRealtimeProvider \}/); assert.match(workbenchLayoutSource, //); }); it("keeps dashboard conversations realtime without tying it to ConversationWorkbench", () => { assert.match(dashboardConversationsPageSource, //); assert.doesNotMatch(conversationWorkbenchSource, /useAgentConversationRealtime/); }); });