Allows isolating dev and prod data by setting SMC_DATA_DIR (e.g. ~/.super-multica-dev). Also fixes cron/store.ts which bypassed DATA_DIR with a hardcoded path. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
37 lines
1 KiB
TypeScript
37 lines
1 KiB
TypeScript
import { describe, it, expect, afterEach } from "vitest";
|
|
import { join } from "node:path";
|
|
import { homedir } from "node:os";
|
|
|
|
import { resolveDataDir } from "./paths.js";
|
|
|
|
describe("resolveDataDir", () => {
|
|
const original = process.env.SMC_DATA_DIR;
|
|
|
|
afterEach(() => {
|
|
if (original === undefined) {
|
|
delete process.env.SMC_DATA_DIR;
|
|
} else {
|
|
process.env.SMC_DATA_DIR = original;
|
|
}
|
|
});
|
|
|
|
it("defaults to ~/.super-multica when SMC_DATA_DIR is not set", () => {
|
|
delete process.env.SMC_DATA_DIR;
|
|
expect(resolveDataDir()).toBe(join(homedir(), ".super-multica"));
|
|
});
|
|
|
|
it("uses absolute path from SMC_DATA_DIR", () => {
|
|
process.env.SMC_DATA_DIR = "/tmp/test-multica";
|
|
expect(resolveDataDir()).toBe("/tmp/test-multica");
|
|
});
|
|
|
|
it("expands ~ in SMC_DATA_DIR", () => {
|
|
process.env.SMC_DATA_DIR = "~/.super-multica-dev";
|
|
expect(resolveDataDir()).toBe(join(homedir(), ".super-multica-dev"));
|
|
});
|
|
|
|
it("handles ~ alone", () => {
|
|
process.env.SMC_DATA_DIR = "~";
|
|
expect(resolveDataDir()).toBe(homedir());
|
|
});
|
|
});
|