import { describe, expect, test } from "vitest";
import { Volume } from "memfs";
import { absolutePathFromProject, withAbsolutePaths } from "./path-helpers.js";
describe("absolutePathFromProject", () => {
    test("resolves relative paths against the project root", () => {
        const result = absolutePathFromProject("/website/project.inlang", "./local-plugins/mock-plugin.js");
        expect(result).toBe("/website/local-plugins/mock-plugin.js");
    });
    test("keeps absolute paths unchanged", () => {
        const result = absolutePathFromProject("/website/project.inlang", "/shared/plugins/plugin.js");
        expect(result).toBe("/shared/plugins/plugin.js");
    });
});
describe("withAbsolutePaths", () => {
    test("maps read/write operations to the project root", async () => {
        const volume = Volume.fromJSON({
            "/website/local-plugins/mock-plugin.js": "plugin code",
        });
        const mappedFs = withAbsolutePaths(volume.promises, "/website/project.inlang");
        const content = await mappedFs.readFile("./local-plugins/mock-plugin.js");
        expect(content.toString()).toBe("plugin code");
        await mappedFs.writeFile("./local-plugins/new-plugin.js", "new plugin");
        const created = await volume.promises.readFile("/website/local-plugins/new-plugin.js", "utf-8");
        expect(created).toBe("new plugin");
    });
});
//# sourceMappingURL=path-helpers.test.js.map