mirror of
https://github.com/pacnpal/Roo-Code.git
synced 2025-12-23 05:41:10 -05:00
Prettier backfill
This commit is contained in:
@@ -1,135 +1,135 @@
|
||||
import { arePathsEqual, getReadablePath } from '../path';
|
||||
import * as path from 'path';
|
||||
import os from 'os';
|
||||
import { arePathsEqual, getReadablePath } from "../path"
|
||||
import * as path from "path"
|
||||
import os from "os"
|
||||
|
||||
describe('Path Utilities', () => {
|
||||
const originalPlatform = process.platform;
|
||||
describe("Path Utilities", () => {
|
||||
const originalPlatform = process.platform
|
||||
|
||||
afterEach(() => {
|
||||
Object.defineProperty(process, 'platform', {
|
||||
value: originalPlatform
|
||||
});
|
||||
});
|
||||
afterEach(() => {
|
||||
Object.defineProperty(process, "platform", {
|
||||
value: originalPlatform,
|
||||
})
|
||||
})
|
||||
|
||||
describe('String.prototype.toPosix', () => {
|
||||
it('should convert backslashes to forward slashes', () => {
|
||||
const windowsPath = 'C:\\Users\\test\\file.txt';
|
||||
expect(windowsPath.toPosix()).toBe('C:/Users/test/file.txt');
|
||||
});
|
||||
describe("String.prototype.toPosix", () => {
|
||||
it("should convert backslashes to forward slashes", () => {
|
||||
const windowsPath = "C:\\Users\\test\\file.txt"
|
||||
expect(windowsPath.toPosix()).toBe("C:/Users/test/file.txt")
|
||||
})
|
||||
|
||||
it('should not modify paths with forward slashes', () => {
|
||||
const unixPath = '/home/user/file.txt';
|
||||
expect(unixPath.toPosix()).toBe('/home/user/file.txt');
|
||||
});
|
||||
it("should not modify paths with forward slashes", () => {
|
||||
const unixPath = "/home/user/file.txt"
|
||||
expect(unixPath.toPosix()).toBe("/home/user/file.txt")
|
||||
})
|
||||
|
||||
it('should preserve extended-length Windows paths', () => {
|
||||
const extendedPath = '\\\\?\\C:\\Very\\Long\\Path';
|
||||
expect(extendedPath.toPosix()).toBe('\\\\?\\C:\\Very\\Long\\Path');
|
||||
});
|
||||
});
|
||||
it("should preserve extended-length Windows paths", () => {
|
||||
const extendedPath = "\\\\?\\C:\\Very\\Long\\Path"
|
||||
expect(extendedPath.toPosix()).toBe("\\\\?\\C:\\Very\\Long\\Path")
|
||||
})
|
||||
})
|
||||
|
||||
describe('arePathsEqual', () => {
|
||||
describe('on Windows', () => {
|
||||
beforeEach(() => {
|
||||
Object.defineProperty(process, 'platform', {
|
||||
value: 'win32'
|
||||
});
|
||||
});
|
||||
describe("arePathsEqual", () => {
|
||||
describe("on Windows", () => {
|
||||
beforeEach(() => {
|
||||
Object.defineProperty(process, "platform", {
|
||||
value: "win32",
|
||||
})
|
||||
})
|
||||
|
||||
it('should compare paths case-insensitively', () => {
|
||||
expect(arePathsEqual('C:\\Users\\Test', 'c:\\users\\test')).toBe(true);
|
||||
});
|
||||
it("should compare paths case-insensitively", () => {
|
||||
expect(arePathsEqual("C:\\Users\\Test", "c:\\users\\test")).toBe(true)
|
||||
})
|
||||
|
||||
it('should handle different path separators', () => {
|
||||
// Convert both paths to use forward slashes after normalization
|
||||
const path1 = path.normalize('C:\\Users\\Test').replace(/\\/g, '/');
|
||||
const path2 = path.normalize('C:/Users/Test').replace(/\\/g, '/');
|
||||
expect(arePathsEqual(path1, path2)).toBe(true);
|
||||
});
|
||||
it("should handle different path separators", () => {
|
||||
// Convert both paths to use forward slashes after normalization
|
||||
const path1 = path.normalize("C:\\Users\\Test").replace(/\\/g, "/")
|
||||
const path2 = path.normalize("C:/Users/Test").replace(/\\/g, "/")
|
||||
expect(arePathsEqual(path1, path2)).toBe(true)
|
||||
})
|
||||
|
||||
it('should normalize paths with ../', () => {
|
||||
// Convert both paths to use forward slashes after normalization
|
||||
const path1 = path.normalize('C:\\Users\\Test\\..\\Test').replace(/\\/g, '/');
|
||||
const path2 = path.normalize('C:\\Users\\Test').replace(/\\/g, '/');
|
||||
expect(arePathsEqual(path1, path2)).toBe(true);
|
||||
});
|
||||
});
|
||||
it("should normalize paths with ../", () => {
|
||||
// Convert both paths to use forward slashes after normalization
|
||||
const path1 = path.normalize("C:\\Users\\Test\\..\\Test").replace(/\\/g, "/")
|
||||
const path2 = path.normalize("C:\\Users\\Test").replace(/\\/g, "/")
|
||||
expect(arePathsEqual(path1, path2)).toBe(true)
|
||||
})
|
||||
})
|
||||
|
||||
describe('on POSIX', () => {
|
||||
beforeEach(() => {
|
||||
Object.defineProperty(process, 'platform', {
|
||||
value: 'darwin'
|
||||
});
|
||||
});
|
||||
describe("on POSIX", () => {
|
||||
beforeEach(() => {
|
||||
Object.defineProperty(process, "platform", {
|
||||
value: "darwin",
|
||||
})
|
||||
})
|
||||
|
||||
it('should compare paths case-sensitively', () => {
|
||||
expect(arePathsEqual('/Users/Test', '/Users/test')).toBe(false);
|
||||
});
|
||||
it("should compare paths case-sensitively", () => {
|
||||
expect(arePathsEqual("/Users/Test", "/Users/test")).toBe(false)
|
||||
})
|
||||
|
||||
it('should normalize paths', () => {
|
||||
expect(arePathsEqual('/Users/./Test', '/Users/Test')).toBe(true);
|
||||
});
|
||||
it("should normalize paths", () => {
|
||||
expect(arePathsEqual("/Users/./Test", "/Users/Test")).toBe(true)
|
||||
})
|
||||
|
||||
it('should handle trailing slashes', () => {
|
||||
expect(arePathsEqual('/Users/Test/', '/Users/Test')).toBe(true);
|
||||
});
|
||||
});
|
||||
it("should handle trailing slashes", () => {
|
||||
expect(arePathsEqual("/Users/Test/", "/Users/Test")).toBe(true)
|
||||
})
|
||||
})
|
||||
|
||||
describe('edge cases', () => {
|
||||
it('should handle undefined paths', () => {
|
||||
expect(arePathsEqual(undefined, undefined)).toBe(true);
|
||||
expect(arePathsEqual('/test', undefined)).toBe(false);
|
||||
expect(arePathsEqual(undefined, '/test')).toBe(false);
|
||||
});
|
||||
describe("edge cases", () => {
|
||||
it("should handle undefined paths", () => {
|
||||
expect(arePathsEqual(undefined, undefined)).toBe(true)
|
||||
expect(arePathsEqual("/test", undefined)).toBe(false)
|
||||
expect(arePathsEqual(undefined, "/test")).toBe(false)
|
||||
})
|
||||
|
||||
it('should handle root paths with trailing slashes', () => {
|
||||
expect(arePathsEqual('/', '/')).toBe(true);
|
||||
expect(arePathsEqual('C:\\', 'C:\\')).toBe(true);
|
||||
});
|
||||
});
|
||||
});
|
||||
it("should handle root paths with trailing slashes", () => {
|
||||
expect(arePathsEqual("/", "/")).toBe(true)
|
||||
expect(arePathsEqual("C:\\", "C:\\")).toBe(true)
|
||||
})
|
||||
})
|
||||
})
|
||||
|
||||
describe('getReadablePath', () => {
|
||||
const homeDir = os.homedir();
|
||||
const desktop = path.join(homeDir, 'Desktop');
|
||||
describe("getReadablePath", () => {
|
||||
const homeDir = os.homedir()
|
||||
const desktop = path.join(homeDir, "Desktop")
|
||||
|
||||
it('should return basename when path equals cwd', () => {
|
||||
const cwd = '/Users/test/project';
|
||||
expect(getReadablePath(cwd, cwd)).toBe('project');
|
||||
});
|
||||
it("should return basename when path equals cwd", () => {
|
||||
const cwd = "/Users/test/project"
|
||||
expect(getReadablePath(cwd, cwd)).toBe("project")
|
||||
})
|
||||
|
||||
it('should return relative path when inside cwd', () => {
|
||||
const cwd = '/Users/test/project';
|
||||
const filePath = '/Users/test/project/src/file.txt';
|
||||
expect(getReadablePath(cwd, filePath)).toBe('src/file.txt');
|
||||
});
|
||||
it("should return relative path when inside cwd", () => {
|
||||
const cwd = "/Users/test/project"
|
||||
const filePath = "/Users/test/project/src/file.txt"
|
||||
expect(getReadablePath(cwd, filePath)).toBe("src/file.txt")
|
||||
})
|
||||
|
||||
it('should return absolute path when outside cwd', () => {
|
||||
const cwd = '/Users/test/project';
|
||||
const filePath = '/Users/test/other/file.txt';
|
||||
expect(getReadablePath(cwd, filePath)).toBe('/Users/test/other/file.txt');
|
||||
});
|
||||
it("should return absolute path when outside cwd", () => {
|
||||
const cwd = "/Users/test/project"
|
||||
const filePath = "/Users/test/other/file.txt"
|
||||
expect(getReadablePath(cwd, filePath)).toBe("/Users/test/other/file.txt")
|
||||
})
|
||||
|
||||
it('should handle Desktop as cwd', () => {
|
||||
const filePath = path.join(desktop, 'file.txt');
|
||||
expect(getReadablePath(desktop, filePath)).toBe(filePath.toPosix());
|
||||
});
|
||||
it("should handle Desktop as cwd", () => {
|
||||
const filePath = path.join(desktop, "file.txt")
|
||||
expect(getReadablePath(desktop, filePath)).toBe(filePath.toPosix())
|
||||
})
|
||||
|
||||
it('should handle undefined relative path', () => {
|
||||
const cwd = '/Users/test/project';
|
||||
expect(getReadablePath(cwd)).toBe('project');
|
||||
});
|
||||
it("should handle undefined relative path", () => {
|
||||
const cwd = "/Users/test/project"
|
||||
expect(getReadablePath(cwd)).toBe("project")
|
||||
})
|
||||
|
||||
it('should handle parent directory traversal', () => {
|
||||
const cwd = '/Users/test/project';
|
||||
const filePath = '../../other/file.txt';
|
||||
expect(getReadablePath(cwd, filePath)).toBe('/Users/other/file.txt');
|
||||
});
|
||||
it("should handle parent directory traversal", () => {
|
||||
const cwd = "/Users/test/project"
|
||||
const filePath = "../../other/file.txt"
|
||||
expect(getReadablePath(cwd, filePath)).toBe("/Users/other/file.txt")
|
||||
})
|
||||
|
||||
it('should normalize paths with redundant segments', () => {
|
||||
const cwd = '/Users/test/project';
|
||||
const filePath = '/Users/test/project/./src/../src/file.txt';
|
||||
expect(getReadablePath(cwd, filePath)).toBe('src/file.txt');
|
||||
});
|
||||
});
|
||||
});
|
||||
it("should normalize paths with redundant segments", () => {
|
||||
const cwd = "/Users/test/project"
|
||||
const filePath = "/Users/test/project/./src/../src/file.txt"
|
||||
expect(getReadablePath(cwd, filePath)).toBe("src/file.txt")
|
||||
})
|
||||
})
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user