mirror of
https://github.com/alkimake/paperclip.git
synced 2026-06-15 18:30:39 +09:00
37 lines
1.4 KiB
TypeScript
37 lines
1.4 KiB
TypeScript
|
|
import fs from "node:fs";
|
||
|
|
import os from "node:os";
|
||
|
|
import path from "node:path";
|
||
|
|
import { afterEach, describe, expect, it } from "vitest";
|
||
|
|
import {
|
||
|
|
resolveDefaultBackupDir,
|
||
|
|
resolveDefaultEmbeddedPostgresDir,
|
||
|
|
resolveDefaultLogsDir,
|
||
|
|
resolveDefaultSecretsKeyFilePath,
|
||
|
|
resolveDefaultStorageDir,
|
||
|
|
resolvePaperclipConfigPathForInstance,
|
||
|
|
resolvePaperclipInstanceRoot,
|
||
|
|
} from "./home-paths.js";
|
||
|
|
|
||
|
|
const ORIGINAL_ENV = { ...process.env };
|
||
|
|
|
||
|
|
afterEach(() => {
|
||
|
|
process.env = { ...ORIGINAL_ENV };
|
||
|
|
});
|
||
|
|
|
||
|
|
describe("home path resolution", () => {
|
||
|
|
it("resolves config and runtime data directly under the instance root", () => {
|
||
|
|
const home = fs.mkdtempSync(path.join(os.tmpdir(), "paperclip-home-paths-"));
|
||
|
|
process.env.PAPERCLIP_HOME = home;
|
||
|
|
delete process.env.PAPERCLIP_INSTANCE_ID;
|
||
|
|
|
||
|
|
const instanceRoot = path.join(home, "instances", "default");
|
||
|
|
expect(resolvePaperclipInstanceRoot()).toBe(instanceRoot);
|
||
|
|
expect(resolvePaperclipConfigPathForInstance()).toBe(path.join(instanceRoot, "config.json"));
|
||
|
|
expect(resolveDefaultEmbeddedPostgresDir()).toBe(path.join(instanceRoot, "db"));
|
||
|
|
expect(resolveDefaultBackupDir()).toBe(path.join(instanceRoot, "data", "backups"));
|
||
|
|
expect(resolveDefaultLogsDir()).toBe(path.join(instanceRoot, "logs"));
|
||
|
|
expect(resolveDefaultStorageDir()).toBe(path.join(instanceRoot, "data", "storage"));
|
||
|
|
expect(resolveDefaultSecretsKeyFilePath()).toBe(path.join(instanceRoot, "secrets", "master.key"));
|
||
|
|
});
|
||
|
|
});
|