test: stabilize docker e2e suites for pairing and model updates

This commit is contained in:
Peter Steinberger
2026-02-21 16:38:43 +01:00
parent 5da03e6221
commit 8588183abe
11 changed files with 183 additions and 121 deletions

View File

@@ -3,7 +3,7 @@ import type { OpenClawConfig } from "../config/config.js";
import "./test-helpers/fast-coding-tools.js";
import { createOpenClawCodingTools } from "./pi-tools.js";
const defaultTools = createOpenClawCodingTools();
const defaultTools = createOpenClawCodingTools({ senderIsOwner: true });
describe("createOpenClawCodingTools", () => {
it("preserves action enums in normalized schemas", () => {

View File

@@ -176,7 +176,9 @@ describe("createOpenClawCodingTools", () => {
expect(parameters.required ?? []).toContain("action");
});
it("exposes raw for gateway config.apply tool calls", () => {
const gateway = defaultTools.find((tool) => tool.name === "gateway");
const gateway = createOpenClawCodingTools({ senderIsOwner: true }).find(
(tool) => tool.name === "gateway",
);
expect(gateway).toBeDefined();
const parameters = gateway?.parameters as {
@@ -505,7 +507,11 @@ describe("createOpenClawCodingTools", () => {
return found;
};
for (const tool of defaultTools) {
const googleTools = createOpenClawCodingTools({
modelProvider: "google",
senderIsOwner: true,
});
for (const tool of googleTools) {
const violations = findUnsupportedKeywords(tool.parameters, `${tool.name}.parameters`);
expect(violations).toEqual([]);
}

View File

@@ -338,15 +338,17 @@ describe("applySkillEnvOverrides", () => {
expect(process.env.NODE_OPTIONS).toBeUndefined();
} finally {
restore();
expect(process.env.OPENAI_API_KEY).toBeUndefined();
expect(process.env.NODE_OPTIONS).toBeUndefined();
if (originalApiKey === undefined) {
expect(process.env.OPENAI_API_KEY).toBeUndefined();
delete process.env.OPENAI_API_KEY;
} else {
expect(process.env.OPENAI_API_KEY).toBe(originalApiKey);
process.env.OPENAI_API_KEY = originalApiKey;
}
if (originalNodeOptions === undefined) {
expect(process.env.NODE_OPTIONS).toBeUndefined();
delete process.env.NODE_OPTIONS;
} else {
expect(process.env.NODE_OPTIONS).toBe(originalNodeOptions);
process.env.NODE_OPTIONS = originalNodeOptions;
}
}
});
@@ -405,11 +407,13 @@ describe("applySkillEnvOverrides", () => {
metadata: '{"openclaw":{"requires":{"env":["OPENAI_API_KEY"]}}}',
});
const originalApiKey = process.env.OPENAI_API_KEY;
process.env.OPENAI_API_KEY = "seed-present";
const snapshot = buildWorkspaceSkillSnapshot(workspaceDir, {
managedSkillsDir: path.join(workspaceDir, ".managed"),
});
const originalApiKey = process.env.OPENAI_API_KEY;
delete process.env.OPENAI_API_KEY;
const restore = applySkillEnvOverridesFromSnapshot({
@@ -431,10 +435,11 @@ describe("applySkillEnvOverrides", () => {
expect(process.env.OPENAI_API_KEY).toBe("snap-secret");
} finally {
restore();
expect(process.env.OPENAI_API_KEY).toBeUndefined();
if (originalApiKey === undefined) {
expect(process.env.OPENAI_API_KEY).toBeUndefined();
delete process.env.OPENAI_API_KEY;
} else {
expect(process.env.OPENAI_API_KEY).toBe(originalApiKey);
process.env.OPENAI_API_KEY = originalApiKey;
}
}
});