






















@@ -1,23 +1,15 @@
11import { afterEach, beforeAll, beforeEach, describe, expect, it, vi } from "vitest";
223-const { fallbackRequireMock, readLoggingConfigMock, shouldSkipMutatingLoggingConfigReadMock } =
4-vi.hoisted(() => ({
5-readLoggingConfigMock: vi.fn(() => undefined),
6-shouldSkipMutatingLoggingConfigReadMock: vi.fn(() => false),
7-fallbackRequireMock: vi.fn(() => {
8-throw new Error("config fallback should not be used in this test");
9-}),
10-}));
3+const { readLoggingConfigMock, shouldSkipMutatingLoggingConfigReadMock } = vi.hoisted(() => ({
4+readLoggingConfigMock: vi.fn<() => unknown>(() => undefined),
5+shouldSkipMutatingLoggingConfigReadMock: vi.fn(() => false),
6+}));
117128vi.mock("./config.js", () => ({
139readLoggingConfig: readLoggingConfigMock,
1410shouldSkipMutatingLoggingConfigRead: shouldSkipMutatingLoggingConfigReadMock,
1511}));
161217-vi.mock("./node-require.js", () => ({
18-resolveNodeRequireFromMeta: () => fallbackRequireMock,
19-}));
20-2113let originalTestFileLog: string | undefined;
2214let originalOpenClawLogLevel: string | undefined;
2315let logging: typeof import("../logging.js");
@@ -31,10 +23,10 @@ beforeEach(() => {
3123originalOpenClawLogLevel = process.env.OPENCLAW_LOG_LEVEL;
3224delete process.env.OPENCLAW_TEST_FILE_LOG;
3325delete process.env.OPENCLAW_LOG_LEVEL;
34-readLoggingConfigMock.mockClear();
26+readLoggingConfigMock.mockReset();
27+readLoggingConfigMock.mockReturnValue(undefined);
3528shouldSkipMutatingLoggingConfigReadMock.mockReset();
3629shouldSkipMutatingLoggingConfigReadMock.mockReturnValue(false);
37-fallbackRequireMock.mockClear();
3830logging.resetLogger();
3931logging.setLoggerOverride(null);
4032});
@@ -60,22 +52,31 @@ describe("getResolvedLoggerSettings", () => {
6052const settings = logging.getResolvedLoggerSettings();
6153expect(settings.level).toBe("silent");
6254expect(readLoggingConfigMock).not.toHaveBeenCalled();
63-expect(fallbackRequireMock).not.toHaveBeenCalled();
6455});
65566657it("reads logging config when test file logging is explicitly enabled", () => {
6758process.env.OPENCLAW_TEST_FILE_LOG = "1";
59+readLoggingConfigMock.mockReturnValue({
60+level: "debug",
61+file: "/tmp/openclaw-configured.log",
62+maxFileBytes: 2048,
63+});
64+6865const settings = logging.getResolvedLoggerSettings();
69-expect(settings.level).toBe("info");
66+67+expect(settings).toMatchObject({
68+level: "debug",
69+file: "/tmp/openclaw-configured.log",
70+maxFileBytes: 2048,
71+});
7072});
717372-it("skips fallback config loads for config schema", () => {
74+it("uses defaults when config schema skips logging config reads", () => {
7375process.env.OPENCLAW_TEST_FILE_LOG = "1";
7476shouldSkipMutatingLoggingConfigReadMock.mockReturnValue(true);
75777678const settings = logging.getResolvedLoggerSettings();
77797880expect(settings.level).toBe("info");
79-expect(fallbackRequireMock).not.toHaveBeenCalled();
8081});
8182});
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。