mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-11 17:40:43 +00:00
* refactor: extract filesystem safety primitives * refactor: use fs-safe for file access helpers * refactor: reuse fs-safe for media reads * refactor: use fs-safe for image reads * refactor: reuse fs-safe in qqbot media opener * refactor: reuse fs-safe for local media checks * refactor: consume cleaner fs-safe api * refactor: align fs-safe json option names * fix: preserve fs-safe migration contracts * refactor: use fs-safe primitive subpaths * refactor: use grouped fs-safe subpaths * refactor: align fs-safe api usage * refactor: adapt private state store api * chore: refresh proof gate * refactor: follow fs-safe json api split * refactor: follow reduced fs-safe surface * build: default fs-safe python helper off * fix: preserve fs-safe plugin sdk aliases * refactor: consolidate fs-safe usage * refactor: unify fs-safe store usage * refactor: trim fs-safe temp workspace usage * refactor: hide low-level fs-safe primitives * build: use published fs-safe package * fix: preserve outbound recovery durability after rebase * chore: refresh pr checks
50 lines
1.8 KiB
TypeScript
50 lines
1.8 KiB
TypeScript
import fs from "node:fs";
|
|
import path from "node:path";
|
|
import { loadSecretFileSync as loadSecretFileSyncFromCore } from "openclaw/plugin-sdk/core";
|
|
import { readFileWithinRoot, writeFileWithinRoot } from "openclaw/plugin-sdk/file-access-runtime";
|
|
import {
|
|
loadSecretFileSync,
|
|
type SecretFileReadResult,
|
|
} from "openclaw/plugin-sdk/secret-file-runtime";
|
|
import { describe, expect, it } from "vitest";
|
|
import { withTempDir } from "../test-helpers/temp-dir.js";
|
|
|
|
describe("plugin SDK fs-safe compatibility exports", () => {
|
|
it("keeps deprecated secret-file result helpers on public SDK subpaths", async () => {
|
|
await withTempDir({ prefix: "openclaw-sdk-secret-compat-" }, async (root) => {
|
|
const secretPath = path.join(root, "token.txt");
|
|
fs.writeFileSync(secretPath, "secret\n", { mode: 0o600 });
|
|
|
|
const result: SecretFileReadResult = loadSecretFileSync(secretPath, "token");
|
|
expect(result).toMatchObject({
|
|
ok: true,
|
|
secret: "secret",
|
|
resolvedPath: secretPath,
|
|
});
|
|
expect(loadSecretFileSyncFromCore(secretPath, "token")).toMatchObject({
|
|
ok: true,
|
|
secret: "secret",
|
|
});
|
|
});
|
|
});
|
|
|
|
it("keeps deprecated root-bounded read/write helpers on file-access-runtime", async () => {
|
|
await withTempDir({ prefix: "openclaw-sdk-file-access-compat-" }, async (root) => {
|
|
await writeFileWithinRoot({
|
|
rootDir: root,
|
|
relativePath: "nested/file.txt",
|
|
data: "hello",
|
|
mkdir: true,
|
|
});
|
|
|
|
const result = await readFileWithinRoot({
|
|
rootDir: root,
|
|
relativePath: "nested/file.txt",
|
|
});
|
|
|
|
expect(result.buffer.toString("utf8")).toBe("hello");
|
|
expect(result.realPath).toBe(fs.realpathSync(path.join(root, "nested", "file.txt")));
|
|
});
|
|
});
|
|
});
|