import { EnvironmentId } from "@t3tools/contracts";import { describe, expect, it } from "vite-plus/test"; import { resolveRenameCommit, shouldShowOpenInPicker } from "./ChatHeader"; describe("shouldShowOpenInPicker", () => { const primaryEnvironmentId = EnvironmentId.make("environment-primary"); it("shows the picker for projects in the primary environment", () => { expect( shouldShowOpenInPicker({ activeProjectName: "codething-mvp", activeThreadEnvironmentId: primaryEnvironmentId, primaryEnvironmentId, remoteOpenMode: "local-exec", }), ).toBe(true); }); it("shows the picker for remote environments in deep-link mode", () => { expect( shouldShowOpenInPicker({ activeProjectName: "codething-mvp", activeThreadEnvironmentId: EnvironmentId.make("environment-remote"), primaryEnvironmentId, remoteOpenMode: "remote-links", }), ).toBe(true); }); it("shows the picker's unavailable state for remote environments without an SSH route", () => { expect( shouldShowOpenInPicker({ activeProjectName: "codething-mvp", activeThreadEnvironmentId: EnvironmentId.make("environment-remote"), primaryEnvironmentId: null, remoteOpenMode: "remote-unavailable", }), ).toBe(true); }); it("hides the picker for non-primary local backends", () => { expect( shouldShowOpenInPicker({ activeProjectName: "codething-mvp", activeThreadEnvironmentId: EnvironmentId.make("environment-remote"), primaryEnvironmentId, remoteOpenMode: "local-exec", }), ).toBe(false); }); it("hides the picker when there is no active project", () => { expect( shouldShowOpenInPicker({ activeProjectName: undefined, activeThreadEnvironmentId: primaryEnvironmentId, primaryEnvironmentId, remoteOpenMode: "remote-links", }), ).toBe(false); });}); describe("resolveRenameCommit", () => { it("commits a trimmed changed title", () => { expect(resolveRenameCommit({ title: " New title ", originalTitle: "Old" })).toEqual({ action: "commit", title: "New title", }); }); it("rejects empty and whitespace-only titles", () => { expect(resolveRenameCommit({ title: " ", originalTitle: "Old" })).toEqual({ action: "reject-empty", }); }); it("no-ops when the trimmed title is unchanged", () => { expect(resolveRenameCommit({ title: " Old ", originalTitle: "Old" })).toEqual({ action: "noop", }); });});
import { EnvironmentId } from "@t3tools/contracts";
import { describe, expect, it } from "vite-plus/test";
import { resolveRenameCommit, shouldShowOpenInPicker } from "./ChatHeader";
describe("shouldShowOpenInPicker", () => {
const primaryEnvironmentId = EnvironmentId.make("environment-primary");
it("shows the picker for projects in the primary environment", () => {
expect(
shouldShowOpenInPicker({
activeProjectName: "codething-mvp",
activeThreadEnvironmentId: primaryEnvironmentId,
primaryEnvironmentId,
remoteOpenMode: "local-exec",
}),
).toBe(true);
});
it("shows the picker for remote environments in deep-link mode", () => {
expect(
shouldShowOpenInPicker({
activeProjectName: "codething-mvp",
activeThreadEnvironmentId: EnvironmentId.make("environment-remote"),
primaryEnvironmentId,
remoteOpenMode: "remote-links",
}),
).toBe(true);
});
it("shows the picker's unavailable state for remote environments without an SSH route", () => {
expect(
shouldShowOpenInPicker({
activeProjectName: "codething-mvp",
activeThreadEnvironmentId: EnvironmentId.make("environment-remote"),
primaryEnvironmentId: null,
remoteOpenMode: "remote-unavailable",
}),
).toBe(true);
});
it("hides the picker for non-primary local backends", () => {
expect(
shouldShowOpenInPicker({
activeProjectName: "codething-mvp",
activeThreadEnvironmentId: EnvironmentId.make("environment-remote"),
primaryEnvironmentId,
remoteOpenMode: "local-exec",
}),
).toBe(false);
});
it("hides the picker when there is no active project", () => {
expect(
shouldShowOpenInPicker({
activeProjectName: undefined,
activeThreadEnvironmentId: primaryEnvironmentId,
primaryEnvironmentId,
remoteOpenMode: "remote-links",
}),
).toBe(false);
});
});
describe("resolveRenameCommit", () => {
it("commits a trimmed changed title", () => {
expect(resolveRenameCommit({ title: " New title ", originalTitle: "Old" })).toEqual({
action: "commit",
title: "New title",
});
});
it("rejects empty and whitespace-only titles", () => {
expect(resolveRenameCommit({ title: " ", originalTitle: "Old" })).toEqual({
action: "reject-empty",
});
});
it("no-ops when the trimmed title is unchanged", () => {
expect(resolveRenameCommit({ title: " Old ", originalTitle: "Old" })).toEqual({
action: "noop",
});
});
});