test: tighten legacy config assertions

This commit is contained in:
Peter Steinberger
2026-05-10 23:43:11 +01:00
parent 354d73bd46
commit eba6dfa9ea

View File

@@ -47,6 +47,10 @@ function issueMessages(issues: Array<{ message: string }>): string[] {
return issues.map((issue) => issue.message);
}
function expectSomeIssueMessageContains(issues: Array<{ message: string }>, text: string): void {
expect(issueMessages(issues).some((message) => message.includes(text))).toBe(true);
}
describe("boolean config validation", () => {
it.each(nonBooleanConfigCases)("rejects non-boolean values for $name", ({ config }) => {
const result = OpenClawSchema.safeParse(config);
@@ -1024,11 +1028,9 @@ describe("config strict validation", () => {
const snap = await readConfigFileSnapshot();
expect(snap.valid).toBe(false);
expect(issueMessages(snap.issues)).toEqual(
expect.arrayContaining([expect.stringContaining('"memorySearch"')]),
);
expectSomeIssueMessageContains(snap.issues, '"memorySearch"');
expect(issuePaths(snap.legacyIssues)).toContain("memorySearch");
expect((snap.sourceConfig as { memorySearch?: unknown }).memorySearch).toMatchObject({
expect((snap.sourceConfig as { memorySearch?: unknown }).memorySearch).toEqual({
provider: "local",
fallback: "none",
query: { maxResults: 7 },
@@ -1049,11 +1051,9 @@ describe("config strict validation", () => {
const snap = await readConfigFileSnapshot();
expect(snap.valid).toBe(false);
expect(issueMessages(snap.issues)).toEqual(
expect.arrayContaining([expect.stringContaining('"heartbeat"')]),
);
expectSomeIssueMessageContains(snap.issues, '"heartbeat"');
expect(issuePaths(snap.legacyIssues)).toContain("heartbeat");
expect((snap.sourceConfig as { heartbeat?: unknown }).heartbeat).toMatchObject({
expect((snap.sourceConfig as { heartbeat?: unknown }).heartbeat).toEqual({
every: "30m",
model: "anthropic/claude-3-5-haiku-20241022",
});
@@ -1074,11 +1074,9 @@ describe("config strict validation", () => {
const snap = await readConfigFileSnapshot();
expect(snap.valid).toBe(false);
expect(issueMessages(snap.issues)).toEqual(
expect.arrayContaining([expect.stringContaining('"heartbeat"')]),
);
expectSomeIssueMessageContains(snap.issues, '"heartbeat"');
expect(issuePaths(snap.legacyIssues)).toContain("heartbeat");
expect((snap.sourceConfig as { heartbeat?: unknown }).heartbeat).toMatchObject({
expect((snap.sourceConfig as { heartbeat?: unknown }).heartbeat).toEqual({
showOk: true,
showAlerts: false,
useIndicator: true,
@@ -1132,12 +1130,10 @@ describe("config strict validation", () => {
const snap = await readConfigFileSnapshot();
expect(snap.valid).toBe(false);
expect(issuePaths(snap.issues)).toEqual(
expect.arrayContaining(["agents.defaults.sandbox", "agents.list.0.sandbox"]),
);
expect(issuePaths(snap.legacyIssues)).toEqual(
expect.arrayContaining(["agents.defaults.sandbox", "agents.list"]),
);
expect(issuePaths(snap.issues)).toContain("agents.defaults.sandbox");
expect(issuePaths(snap.issues)).toContain("agents.list.0.sandbox");
expect(issuePaths(snap.legacyIssues)).toContain("agents.defaults.sandbox");
expect(issuePaths(snap.legacyIssues)).toContain("agents.list");
expect(snap.sourceConfig.agents?.defaults?.sandbox).toEqual({ perSession: true });
expect(snap.sourceConfig.agents?.list?.[0]?.sandbox).toEqual({ perSession: false });
});