Merge branch 'main' into kaspersv/clear-pkg-cache-on-dbscheme-changes
This commit is contained in:
@@ -1,96 +0,0 @@
|
|||||||
import { platform } from "os";
|
|
||||||
import type { BaseLogger } from "../../../src/common/logging";
|
|
||||||
import { expandShortPaths } from "../../../src/common/short-paths";
|
|
||||||
import { join } from "path";
|
|
||||||
|
|
||||||
describe("expandShortPaths", () => {
|
|
||||||
let logger: BaseLogger;
|
|
||||||
|
|
||||||
beforeEach(() => {
|
|
||||||
logger = {
|
|
||||||
log: jest.fn(),
|
|
||||||
};
|
|
||||||
});
|
|
||||||
|
|
||||||
describe("on POSIX", () => {
|
|
||||||
if (platform() === "win32") {
|
|
||||||
console.log(`Skipping test on Windows`);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
it("should return the same path for non-Windows platforms", async () => {
|
|
||||||
const path = "/home/user/some~path";
|
|
||||||
const result = await expandShortPaths(path, logger);
|
|
||||||
|
|
||||||
expect(logger.log).not.toHaveBeenCalled();
|
|
||||||
expect(result).toBe(path);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
describe("on Windows", () => {
|
|
||||||
if (platform() !== "win32") {
|
|
||||||
console.log(`Skipping test on non-Windows`);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
it("should return the same path if no short components", async () => {
|
|
||||||
const path = "C:\\Program Files\\Some Folder";
|
|
||||||
const result = await expandShortPaths(path, logger);
|
|
||||||
|
|
||||||
expect(logger.log).toHaveBeenCalledWith(
|
|
||||||
`Expanding short paths in: ${path}`,
|
|
||||||
);
|
|
||||||
expect(logger.log).toHaveBeenCalledWith(
|
|
||||||
"Skipping due to no short components",
|
|
||||||
);
|
|
||||||
expect(result).toBe(path);
|
|
||||||
});
|
|
||||||
|
|
||||||
it("should not attempt to expand long paths with '~' in the name", async () => {
|
|
||||||
const testDir = join(__dirname, "../data/short-paths");
|
|
||||||
const path = join(testDir, "textfile-with~tilde.txt");
|
|
||||||
const result = await expandShortPaths(path, logger);
|
|
||||||
|
|
||||||
expect(logger.log).toHaveBeenCalledWith(
|
|
||||||
`Expanding short paths in: ${path}`,
|
|
||||||
);
|
|
||||||
expect(logger.log).toHaveBeenCalledWith(
|
|
||||||
`Expanding short path component: textfile-with~tilde.txt`,
|
|
||||||
);
|
|
||||||
expect(logger.log).toHaveBeenCalledWith(`Component is not a short name`);
|
|
||||||
expect(result).toBe(join(testDir, "textfile-with~tilde.txt"));
|
|
||||||
});
|
|
||||||
|
|
||||||
it("should expand a short path", async () => {
|
|
||||||
const path = "C:\\PROGRA~1\\Some Folder";
|
|
||||||
const result = await expandShortPaths(path, logger);
|
|
||||||
|
|
||||||
expect(logger.log).toHaveBeenCalledWith(
|
|
||||||
`Expanding short paths in: ${path}`,
|
|
||||||
);
|
|
||||||
expect(logger.log).toHaveBeenCalledWith(
|
|
||||||
`Expanding short path component: PROGRA~1`,
|
|
||||||
);
|
|
||||||
expect(result).toBe("C:\\Program Files\\Some Folder");
|
|
||||||
});
|
|
||||||
|
|
||||||
it("should expand multiple short paths", async () => {
|
|
||||||
const testDir = join(__dirname, "../data/short-paths");
|
|
||||||
const path = join(testDir, "FOLDER~1", "TEXTFI~1.TXT");
|
|
||||||
const result = await expandShortPaths(path, logger);
|
|
||||||
|
|
||||||
expect(logger.log).toHaveBeenCalledWith(
|
|
||||||
`Expanding short paths in: ${path}`,
|
|
||||||
);
|
|
||||||
expect(logger.log).toHaveBeenCalledWith(
|
|
||||||
`Expanding short path component: FOLDER~1`,
|
|
||||||
);
|
|
||||||
expect(logger.log).toHaveBeenCalledWith(
|
|
||||||
`Expanding short path component: TEXTFI~1.TXT`,
|
|
||||||
);
|
|
||||||
expect(result).toBe(
|
|
||||||
join(testDir, "folder with space", ".textfile+extra.characters.txt"),
|
|
||||||
);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
});
|
|
||||||
Reference in New Issue
Block a user