refactor: unify env vars (UWF_HOME, OCAS_HOME) + env only in CLI (#37)
CI / check (pull_request) Failing after 3m6s
CI / check (pull_request) Failing after 3m6s
Breaking changes: - UWF_STORAGE_ROOT → UWF_HOME - WORKFLOW_STORAGE_ROOT removed (no fallback) - OCAS_DIR → OCAS_HOME (aligned with ocas CLI) Library functions no longer read process.env: - util-agent/storage.ts: resolveStorageRoot(override), getGlobalCasDir(override) - agent-hermes: isResumeDisabled(flag) pure function, CLI reads env - agent-claude-code: CLI reads CLAUDE_MODEL and passes to agent Fixes #37
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
import { homedir } from "node:os";
|
||||
import { join } from "node:path";
|
||||
import { describe, it, expect, beforeEach, afterEach } from "vitest";
|
||||
import { describe, it, expect } from "vitest";
|
||||
import {
|
||||
resolveStorageRoot,
|
||||
getDefaultStorageRoot,
|
||||
@@ -26,42 +26,16 @@ describe("getDefaultStorageRoot", () => {
|
||||
});
|
||||
|
||||
describe("resolveStorageRoot", () => {
|
||||
const saved: Record<string, string | undefined> = {};
|
||||
|
||||
beforeEach(() => {
|
||||
saved.UWF_STORAGE_ROOT = process.env.UWF_STORAGE_ROOT;
|
||||
saved.WORKFLOW_STORAGE_ROOT = process.env.WORKFLOW_STORAGE_ROOT;
|
||||
it("uses the override when provided", () => {
|
||||
expect(resolveStorageRoot("/tmp/uwf1")).toBe("/tmp/uwf1");
|
||||
});
|
||||
|
||||
afterEach(() => {
|
||||
for (const k of ["UWF_STORAGE_ROOT", "WORKFLOW_STORAGE_ROOT"] as const) {
|
||||
if (saved[k] === undefined) delete process.env[k];
|
||||
else process.env[k] = saved[k];
|
||||
}
|
||||
it("falls back to default when override is null", () => {
|
||||
expect(resolveStorageRoot(null)).toBe(getDefaultStorageRoot());
|
||||
});
|
||||
|
||||
it("uses UWF_STORAGE_ROOT first", () => {
|
||||
process.env.UWF_STORAGE_ROOT = "/tmp/uwf1";
|
||||
process.env.WORKFLOW_STORAGE_ROOT = "/tmp/uwf2";
|
||||
expect(resolveStorageRoot()).toBe("/tmp/uwf1");
|
||||
});
|
||||
|
||||
it("falls back to WORKFLOW_STORAGE_ROOT", () => {
|
||||
delete process.env.UWF_STORAGE_ROOT;
|
||||
process.env.WORKFLOW_STORAGE_ROOT = "/tmp/uwf2";
|
||||
expect(resolveStorageRoot()).toBe("/tmp/uwf2");
|
||||
});
|
||||
|
||||
it("falls back to default when both unset", () => {
|
||||
delete process.env.UWF_STORAGE_ROOT;
|
||||
delete process.env.WORKFLOW_STORAGE_ROOT;
|
||||
expect(resolveStorageRoot()).toBe(getDefaultStorageRoot());
|
||||
});
|
||||
|
||||
it("ignores empty UWF_STORAGE_ROOT", () => {
|
||||
process.env.UWF_STORAGE_ROOT = "";
|
||||
process.env.WORKFLOW_STORAGE_ROOT = "/tmp/uwf2";
|
||||
expect(resolveStorageRoot()).toBe("/tmp/uwf2");
|
||||
it("ignores empty override", () => {
|
||||
expect(resolveStorageRoot("")).toBe(getDefaultStorageRoot());
|
||||
});
|
||||
});
|
||||
|
||||
@@ -72,21 +46,16 @@ describe("path helpers", () => {
|
||||
});
|
||||
|
||||
describe("getGlobalCasDir", () => {
|
||||
const saved = { OCAS_DIR: process.env.OCAS_DIR };
|
||||
|
||||
afterEach(() => {
|
||||
if (saved.OCAS_DIR === undefined) delete process.env.OCAS_DIR;
|
||||
else process.env.OCAS_DIR = saved.OCAS_DIR;
|
||||
it("uses the override when provided", () => {
|
||||
expect(getGlobalCasDir("/tmp/ocas")).toBe("/tmp/ocas");
|
||||
});
|
||||
|
||||
it("uses OCAS_DIR when set", () => {
|
||||
process.env.OCAS_DIR = "/tmp/ocas";
|
||||
expect(getGlobalCasDir()).toBe("/tmp/ocas");
|
||||
it("defaults to ~/.ocas when override is null", () => {
|
||||
expect(getGlobalCasDir(null)).toBe(join(homedir(), ".ocas"));
|
||||
});
|
||||
|
||||
it("defaults to ~/.ocas", () => {
|
||||
delete process.env.OCAS_DIR;
|
||||
expect(getGlobalCasDir()).toBe(join(homedir(), ".ocas"));
|
||||
it("ignores empty override", () => {
|
||||
expect(getGlobalCasDir("")).toBe(join(homedir(), ".ocas"));
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user