import type { PreviewSessionSnapshot } from "@t3tools/contracts";import { describe, expect, it } from "vite-plus/test"; import { needsPreviewAutomationSessionSync, resolvePreviewAutomationOpenTab, resolvePreviewAutomationTarget,} from "./previewAutomationTarget"; const snapshot = (tabId: string): PreviewSessionSnapshot => ({ threadId: "thread-1", tabId, navStatus: { _tag: "Idle" }, canGoBack: false, canGoForward: false, updatedAt: "2026-01-01T00:00:00.000Z",}); describe("preview automation target selection", () => { it("refreshes authoritative sessions whenever the caller relies on the active tab", () => { const active = snapshot("tab-active"); expect( needsPreviewAutomationSessionSync( { snapshot: active, sessions: { [active.tabId]: active } }, undefined, ), ).toBe(true); }); it("refreshes an explicit tab only when it is absent locally", () => { const active = snapshot("tab-active"); const state = { snapshot: active, sessions: { [active.tabId]: active } }; expect(needsPreviewAutomationSessionSync(state, active.tabId)).toBe(false); expect(needsPreviewAutomationSessionSync(state, "tab-missing")).toBe(true); }); it("does not report the active tab under an unknown requested tab id", () => { const active = snapshot("tab-active"); expect( resolvePreviewAutomationTarget( { snapshot: active, sessions: { [active.tabId]: active } }, "tab-missing", ), ).toEqual({ tabId: null, snapshot: null }); }); it("reuses the provider session's pinned tab instead of the mutable UI tab", () => { const uiActive = snapshot("tab-ui-active"); const agentTab = snapshot("tab-opened-by-agent"); const state = { snapshot: uiActive, sessions: { [uiActive.tabId]: uiActive, [agentTab.tabId]: agentTab }, }; expect(resolvePreviewAutomationOpenTab(state, agentTab.tabId, true)).toBe(agentTab.tabId); expect(resolvePreviewAutomationOpenTab(state, undefined, true)).toBe(uiActive.tabId); expect(resolvePreviewAutomationOpenTab(state, agentTab.tabId, false)).toBeNull(); });});
import type { PreviewSessionSnapshot } from "@t3tools/contracts";
import { describe, expect, it } from "vite-plus/test";
import {
needsPreviewAutomationSessionSync,
resolvePreviewAutomationOpenTab,
resolvePreviewAutomationTarget,
} from "./previewAutomationTarget";
const snapshot = (tabId: string): PreviewSessionSnapshot => ({
threadId: "thread-1",
tabId,
navStatus: { _tag: "Idle" },
canGoBack: false,
canGoForward: false,
updatedAt: "2026-01-01T00:00:00.000Z",
});
describe("preview automation target selection", () => {
it("refreshes authoritative sessions whenever the caller relies on the active tab", () => {
const active = snapshot("tab-active");
expect(
needsPreviewAutomationSessionSync(
{ snapshot: active, sessions: { [active.tabId]: active } },
undefined,
),
).toBe(true);
});
it("refreshes an explicit tab only when it is absent locally", () => {
const active = snapshot("tab-active");
const state = { snapshot: active, sessions: { [active.tabId]: active } };
expect(needsPreviewAutomationSessionSync(state, active.tabId)).toBe(false);
expect(needsPreviewAutomationSessionSync(state, "tab-missing")).toBe(true);
});
it("does not report the active tab under an unknown requested tab id", () => {
const active = snapshot("tab-active");
expect(
resolvePreviewAutomationTarget(
{ snapshot: active, sessions: { [active.tabId]: active } },
"tab-missing",
),
).toEqual({ tabId: null, snapshot: null });
});
it("reuses the provider session's pinned tab instead of the mutable UI tab", () => {
const uiActive = snapshot("tab-ui-active");
const agentTab = snapshot("tab-opened-by-agent");
const state = {
snapshot: uiActive,
sessions: { [uiActive.tabId]: uiActive, [agentTab.tabId]: agentTab },
};
expect(resolvePreviewAutomationOpenTab(state, agentTab.tabId, true)).toBe(agentTab.tabId);
expect(resolvePreviewAutomationOpenTab(state, undefined, true)).toBe(uiActive.tabId);
expect(resolvePreviewAutomationOpenTab(state, agentTab.tabId, false)).toBeNull();
});
});