mirror of
https://github.com/hansjone/oclaw.git
synced 2026-10-10 11:50:45 +08:00
重构主控编排与运行时预热链路,统一工作区提示词/专家调度协议并补齐 wiki 记忆注入与写回闭环。
同时收敛启动与运维脚本默认行为(含 wiki worker)、更新 Admin 可观测性与相关测试,降低首轮时延并提高运行稳定性。 Made-with: Cursor
This commit is contained in:
parent
4a23b715a2
commit
dbbe3add6a
14438 changed files with 2693620 additions and 2546 deletions
51
openclaw/test/scripts/ts-guard-utils.test.ts
Normal file
51
openclaw/test/scripts/ts-guard-utils.test.ts
Normal file
|
|
@ -0,0 +1,51 @@
|
|||
import { existsSync } from "node:fs";
|
||||
import path from "node:path";
|
||||
import { pathToFileURL } from "node:url";
|
||||
import { describe, expect, it } from "vitest";
|
||||
import { resolveRepoRoot } from "../../scripts/lib/ts-guard-utils.mjs";
|
||||
|
||||
/**
|
||||
* Regression tests for resolveRepoRoot().
|
||||
*
|
||||
* The original implementation went up exactly two levels from the caller's
|
||||
* import.meta.url, which broke for scripts at scripts/*.mjs (one level below
|
||||
* root) — it overshot to the repo's parent directory.
|
||||
*/
|
||||
describe("resolveRepoRoot", () => {
|
||||
it("resolves correctly from a scripts/lib/*.mjs path (two levels below root)", () => {
|
||||
const fakeUrl = pathToFileURL(path.resolve("scripts", "lib", "some-guard-utils.mjs")).href;
|
||||
const root = resolveRepoRoot(fakeUrl);
|
||||
|
||||
expect(existsSync(path.join(root, ".git"))).toBe(true);
|
||||
expect(existsSync(path.join(root, "package.json"))).toBe(true);
|
||||
});
|
||||
|
||||
it("resolves correctly from a scripts/*.mjs path (one level below root)", () => {
|
||||
const fakeUrl = pathToFileURL(path.resolve("scripts", "check-no-raw-channel-fetch.mjs")).href;
|
||||
const root = resolveRepoRoot(fakeUrl);
|
||||
|
||||
expect(existsSync(path.join(root, ".git"))).toBe(true);
|
||||
expect(existsSync(path.join(root, "package.json"))).toBe(true);
|
||||
});
|
||||
|
||||
it("resolves correctly from a deeply nested extension path", () => {
|
||||
const fakeUrl = pathToFileURL(
|
||||
path.resolve("extensions", "qqbot", "src", "utils", "hypothetical.mjs"),
|
||||
).href;
|
||||
const root = resolveRepoRoot(fakeUrl);
|
||||
|
||||
expect(existsSync(path.join(root, ".git"))).toBe(true);
|
||||
expect(existsSync(path.join(root, "package.json"))).toBe(true);
|
||||
});
|
||||
|
||||
it("all caller depths resolve to the same root", () => {
|
||||
const fromLib = resolveRepoRoot(pathToFileURL(path.resolve("scripts", "lib", "a.mjs")).href);
|
||||
const fromScripts = resolveRepoRoot(pathToFileURL(path.resolve("scripts", "b.mjs")).href);
|
||||
const fromExtension = resolveRepoRoot(
|
||||
pathToFileURL(path.resolve("extensions", "qqbot", "c.mjs")).href,
|
||||
);
|
||||
|
||||
expect(fromLib).toBe(fromScripts);
|
||||
expect(fromScripts).toBe(fromExtension);
|
||||
});
|
||||
});
|
||||
Loading…
Add table
Add a link
Reference in a new issue