1import { describe, expect, it } from "vite-plus/test";
2
3import { formatWorkspaceRelativePath } from "./filePathDisplay";
4
5describe("formatWorkspaceRelativePath", () => {
6 it("formats absolute workspace paths from the workspace root", () => {
7 expect(
8 formatWorkspaceRelativePath(
9 "C:/Users/mike/dev-stuff/t3code/apps/web/src/session-logic.ts:501",
10 "C:/Users/mike/dev-stuff/t3code",
11 ),
12 ).toBe("t3code/apps/web/src/session-logic.ts:501");
13 });
14
15 it("prefixes relative paths with the workspace root label", () => {
16 expect(
17 formatWorkspaceRelativePath(
18 "apps/web/src/session-logic.ts:501",
19 "C:/Users/mike/dev-stuff/t3code",
20 ),
21 ).toBe("t3code/apps/web/src/session-logic.ts:501");
22 });
23
24 it("keeps paths already rooted at the workspace label stable", () => {
25 expect(
26 formatWorkspaceRelativePath(
27 "t3code/apps/web/src/session-logic.ts:501",
28 "C:/Users/mike/dev-stuff/t3code",
29 ),
30 ).toBe("t3code/apps/web/src/session-logic.ts:501");
31 });
32
33 it("preserves columns when present", () => {
34 expect(
35 formatWorkspaceRelativePath(
36 "/C:/Users/mike/dev-stuff/t3code/apps/web/src/session-logic.ts:501:9",
37 "C:/Users/mike/dev-stuff/t3code",
38 ),
39 ).toBe("t3code/apps/web/src/session-logic.ts:501:9");
40 });
41
42 it("keeps double-slash POSIX paths case-sensitive", () => {
43 expect(formatWorkspaceRelativePath("//tmp/project/probe.txt", "//tmp/Project")).toBe(
44 "//tmp/project/probe.txt",
45 );
46 });
47});