Files
IdeA/frontend/src/features/git/gitTree.test.ts
Blomios 307ae71857 feat: add main features
Agents for developpement added + frontend add + backend added. Git viewer created + agent and template creator + layout and project creator
2026-06-06 01:27:01 +02:00

34 lines
1.1 KiB
TypeScript

import { describe, it, expect } from "vitest";
import { buildFileTree } from "./gitTree";
describe("buildFileTree", () => {
it("folds paths into a nested directory tree", () => {
const tree = buildFileTree([
{ path: "src/app/main.rs", staged: false },
{ path: "src/lib.rs", staged: true },
{ path: "README.md", staged: false },
]);
// Directories first, then files, alphabetically: src/ then README.md.
expect(tree.map((n) => n.name)).toEqual(["src", "README.md"]);
const src = tree[0];
expect(src.isDir).toBe(true);
// Inside src: app/ (dir) then lib.rs (file).
expect(src.children.map((n) => n.name)).toEqual(["app", "lib.rs"]);
expect(src.children[0].isDir).toBe(true);
expect(src.children[0].children[0].path).toBe("src/app/main.rs");
expect(src.children[1].path).toBe("src/lib.rs");
// The README leaf keeps its full path + staged flag.
const readme = tree[1];
expect(readme.isDir).toBe(false);
expect(readme.path).toBe("README.md");
});
it("returns an empty array for no files", () => {
expect(buildFileTree([])).toEqual([]);
});
});