import { describe, expect, it } from "vite-plus/test";import type { VcsRef } from "@t3tools/contracts";import { buildBaseRefChoices, filterBaseRefChoices } from "./baseRefChoices"; function ref(name: string, remoteName?: string): VcsRef { return { name, current: false, isDefault: false, isRemote: remoteName !== undefined, ...(remoteName ? { remoteName } : {}), worktreePath: null, };} describe("buildBaseRefChoices", () => { it("pairs matching local and remote branches and prefers origin", () => { const choices = buildBaseRefChoices( [ref("main")], [ref("upstream/main", "upstream"), ref("origin/main", "origin")], ); expect(choices).toEqual([ expect.objectContaining({ label: "main", local: expect.objectContaining({ name: "main" }), remote: expect.objectContaining({ name: "origin/main" }), }), expect.objectContaining({ label: "upstream/main", local: null, remote: expect.objectContaining({ name: "upstream/main" }), }), ]); });}); describe("filterBaseRefChoices", () => { it("filters stale server results against the current query", () => { const choices = buildBaseRefChoices( [ref("main"), ref("feature/search")], [ref("origin/main", "origin"), ref("origin/feature/search", "origin")], ); expect(filterBaseRefChoices(choices, "SEARCH").map((choice) => choice.label)).toEqual([ "feature/search", ]); expect(filterBaseRefChoices(choices, "origin/main").map((choice) => choice.label)).toEqual([ "main", ]); });});
import { describe, expect, it } from "vite-plus/test";
import type { VcsRef } from "@t3tools/contracts";
import { buildBaseRefChoices, filterBaseRefChoices } from "./baseRefChoices";
function ref(name: string, remoteName?: string): VcsRef {
return {
name,
current: false,
isDefault: false,
isRemote: remoteName !== undefined,
...(remoteName ? { remoteName } : {}),
worktreePath: null,
};
}
describe("buildBaseRefChoices", () => {
it("pairs matching local and remote branches and prefers origin", () => {
const choices = buildBaseRefChoices(
[ref("main")],
[ref("upstream/main", "upstream"), ref("origin/main", "origin")],
);
expect(choices).toEqual([
expect.objectContaining({
label: "main",
local: expect.objectContaining({ name: "main" }),
remote: expect.objectContaining({ name: "origin/main" }),
}),
expect.objectContaining({
label: "upstream/main",
local: null,
remote: expect.objectContaining({ name: "upstream/main" }),
}),
]);
});
});
describe("filterBaseRefChoices", () => {
it("filters stale server results against the current query", () => {
const choices = buildBaseRefChoices(
[ref("main"), ref("feature/search")],
[ref("origin/main", "origin"), ref("origin/feature/search", "origin")],
);
expect(filterBaseRefChoices(choices, "SEARCH").map((choice) => choice.label)).toEqual([
"feature/search",
]);
expect(filterBaseRefChoices(choices, "origin/main").map((choice) => choice.label)).toEqual([
"main",
]);
});
});