test(release): align beta e2e contracts

This commit is contained in:
Vincent Koc
2026-08-01 03:21:21 +08:00
parent 8b0c395fb0
commit d3fd901f6b
3 changed files with 29 additions and 25 deletions
+15
View File
@@ -68,6 +68,21 @@ if [[ "\${1:-}" == "build" ]]; then
echo "build DOCKER_BUILDKIT=\${DOCKER_BUILDKIT:-} $*" >>"$log"
exit 0
fi
if [[ "\${1:-}" == "run" ]]; then
echo "run $*" >>"$log"
args=("$@")
for ((i = 0; i + 3 < \${#args[@]}; i++)); do
if [[ "\${args[$i]}" == "--entrypoint" && "\${args[$((i + 1))]}" == "node" ]]; then
for ((j = i + 2; j + 1 < \${#args[@]}; j++)); do
if [[ "\${args[$j]}" == "-e" ]]; then
node -e "\${args[$((j + 1))]}" "\${args[@]:$((j + 2))}"
exit $?
fi
done
fi
done
exit 0
fi
if [[ "\${1:-}" == "compose" ]]; then
if [[ -n "$fail_match" && "$*" == *"$fail_match"* ]]; then
echo "compose-fail $*" >>"$log"
+2 -2
View File
@@ -807,7 +807,7 @@ describe("scripts/docker/setup.sh", () => {
expect(result.stderr).toContain("OPENCLAW_HOME_VOLUME must match");
});
it("rejects OPENCLAW_TZ values that are not present in zoneinfo", () => {
it("rejects OPENCLAW_TZ values that are unsupported by the runtime image", () => {
const activeSandbox = requireSandbox(sandbox);
const result = runDockerSetup(activeSandbox, {
@@ -815,7 +815,7 @@ describe("scripts/docker/setup.sh", () => {
});
expect(result.status).not.toBe(0);
expect(result.stderr).toContain("OPENCLAW_TZ must match a timezone in /usr/share/zoneinfo");
expect(result.stderr).toContain("OPENCLAW_TZ must be supported by openclaw:local");
});
it("skips onboarding when OPENCLAW_SKIP_ONBOARDING is set", async () => {
+12 -23
View File
@@ -8,7 +8,6 @@ import {
clearConfigCache,
clearRuntimeConfigSnapshot,
getRuntimeConfig,
getRuntimeConfigSnapshotMetadata,
writeConfigFile,
} from "../config/config.js";
import { resetConfigOverrides, setConfigOverride } from "../config/runtime-overrides.js";
@@ -345,10 +344,11 @@ describe("gateway e2e", () => {
callerAuthOverride.rateLimit!.maxAttempts = 99;
callerTailscaleOverride.serviceName = "svc:mutated";
}
await writeConfigFile({
const nextLoggingSource = {
...initialConfig,
logging: { level: "debug" },
});
} satisfies OpenClawConfig;
await writeConfigFile(nextLoggingSource);
await expect
.poll(() => getRuntimeConfig().logging?.level, { timeout: 5_000, interval: 50 })
.toBe("debug");
@@ -362,8 +362,7 @@ describe("gateway e2e", () => {
expect(getRuntimeConfig().channels?.whatsapp?.allowFrom).toEqual(["*"]);
const sourceBeforePolicyEdit = (await configIO.readConfigFileSnapshot()).sourceConfig;
const revisionBeforePolicyEdit = getRuntimeConfigSnapshotMetadata()?.revision ?? -1;
await writeConfigFile({
const nextPolicySource = {
...sourceBeforePolicyEdit,
channels: {
...sourceBeforePolicyEdit.channels,
@@ -372,13 +371,8 @@ describe("gateway e2e", () => {
dmPolicy: "disabled",
},
},
});
await expect
.poll(() => getRuntimeConfigSnapshotMetadata()?.revision ?? -1, {
timeout: 5_000,
interval: 50,
})
.toBeGreaterThan(revisionBeforePolicyEdit);
} satisfies OpenClawConfig;
await writeConfigFile(nextPolicySource);
const persistedPolicyEdit = JSON.parse(
await fs.readFile(configPath, "utf-8"),
) as OpenClawConfig;
@@ -386,21 +380,16 @@ describe("gateway e2e", () => {
expect(getRuntimeConfig().channels?.whatsapp?.dmPolicy).toBe("open");
const sourceBeforeUnrelatedWrite = (await configIO.readConfigFileSnapshot()).sourceConfig;
const revisionBeforeUnrelatedWrite = getRuntimeConfigSnapshotMetadata()?.revision ?? -1;
await writeConfigFile({
const nextUnrelatedSource = {
...sourceBeforeUnrelatedWrite,
ui: { assistant: { name: "unrelated-managed-write" } },
});
await expect
.poll(() => getRuntimeConfigSnapshotMetadata()?.revision ?? -1, {
timeout: 5_000,
interval: 50,
})
.toBeGreaterThan(revisionBeforeUnrelatedWrite);
} satisfies OpenClawConfig;
await writeConfigFile(nextUnrelatedSource);
const persistedAfterUnrelatedWrite = JSON.parse(
await fs.readFile(configPath, "utf-8"),
) as OpenClawConfig;
expect(persistedAfterUnrelatedWrite.channels?.whatsapp?.dmPolicy).toBe("disabled");
expect(persistedAfterUnrelatedWrite.ui?.assistant?.name).toBe("unrelated-managed-write");
}
const reconnected = await connectGatewayClient({
@@ -588,7 +577,7 @@ describe("gateway e2e", () => {
},
// The request below runs sessionKey "agent:dev:mock-openai"; the
// gateway rejects session keys whose agent id is not declared.
list: [{ id: "dev", default: true }],
entries: { dev: { default: true } },
},
models: {
mode: "replace",
@@ -674,7 +663,7 @@ module.exports = {
const cfg = {
agents: {
defaults: { workspace: workspaceDir },
list: [{ id: "main", default: true, tools: { allow: ["agents_list"] } }],
entries: { main: { default: true, tools: { allow: ["agents_list"] } } },
},
plugins: {
allow: ["http-probe"],