test: tighten gateway startup assertions

This commit is contained in:
Peter Steinberger
2026-05-11 12:56:23 +01:00
parent 51ad59ea0c
commit 96c2502bfb
2 changed files with 28 additions and 31 deletions

View File

@@ -1,8 +1,10 @@
import { beforeEach, describe, expect, it, vi } from "vitest";
type StartGatewayDiscovery = typeof import("./server-discovery-runtime.js").startGatewayDiscovery;
const mocks = vi.hoisted(() => ({
getMachineDisplayName: vi.fn(async () => "Test Machine"),
startGatewayDiscovery: vi.fn(async () => ({ bonjourStop: null })),
startGatewayDiscovery: vi.fn<StartGatewayDiscovery>(async () => ({ bonjourStop: null })),
}));
vi.mock("../infra/machine-name.js", () => ({
@@ -87,15 +89,15 @@ describe("startGatewayEarlyRuntime", () => {
}),
).resolves.toBe(stop);
expect(mocks.startGatewayDiscovery).toHaveBeenCalledWith(
expect.objectContaining({
machineDisplayName: "Test Machine",
port: 19_001,
gatewayTls: { enabled: true, fingerprintSha256: "abc123" },
tailscaleMode: "serve",
mdnsMode: "full",
gatewayDiscoveryServices: [service],
}),
);
const [discoveryParams] = mocks.startGatewayDiscovery.mock.calls.at(-1) ?? [];
if (discoveryParams === undefined) {
throw new Error("Expected gateway discovery to start");
}
expect(discoveryParams.machineDisplayName).toBe("Test Machine");
expect(discoveryParams.port).toBe(19_001);
expect(discoveryParams.gatewayTls).toEqual({ enabled: true, fingerprintSha256: "abc123" });
expect(discoveryParams.tailscaleMode).toBe("serve");
expect(discoveryParams.mdnsMode).toBe("full");
expect(discoveryParams.gatewayDiscoveryServices).toEqual([service]);
});
});

View File

@@ -36,6 +36,19 @@ vi.mock("../agents/pi-embedded-runner/runtime.js", () => ({
let prewarmConfiguredPrimaryModel: typeof import("./server-startup-post-attach.js").__testing.prewarmConfiguredPrimaryModel;
let shouldSkipStartupModelPrewarm: typeof import("./server-startup-post-attach.js").__testing.shouldSkipStartupModelPrewarm;
function expectModelsJsonPrewarmCall(cfg: OpenClawConfig) {
expect(ensureOpenClawModelsJsonMock).toHaveBeenCalledTimes(1);
const [calledConfig, agentDir, options] = ensureOpenClawModelsJsonMock.mock.calls[0] ?? [];
expect(calledConfig).toBe(cfg);
expect(agentDir).toBe("/tmp/agent");
expect(options).toEqual({
workspaceDir: "/tmp/workspace",
providerDiscoveryProviderIds: ["openai-codex"],
providerDiscoveryTimeoutMs: 5000,
providerDiscoveryEntriesOnly: true,
});
}
describe("gateway startup primary model warmup", () => {
beforeAll(async () => {
({
@@ -66,16 +79,7 @@ describe("gateway startup primary model warmup", () => {
log: { warn: vi.fn() },
});
expect(ensureOpenClawModelsJsonMock).toHaveBeenCalledWith(
cfg,
"/tmp/agent",
expect.objectContaining({
workspaceDir: "/tmp/workspace",
providerDiscoveryProviderIds: ["openai-codex"],
providerDiscoveryTimeoutMs: 5000,
providerDiscoveryEntriesOnly: true,
}),
);
expectModelsJsonPrewarmCall(cfg);
expect(piModelModuleLoadedMock).not.toHaveBeenCalled();
});
@@ -163,16 +167,7 @@ describe("gateway startup primary model warmup", () => {
log: { warn: vi.fn() },
});
expect(ensureOpenClawModelsJsonMock).toHaveBeenCalledWith(
cfg,
"/tmp/agent",
expect.objectContaining({
workspaceDir: "/tmp/workspace",
providerDiscoveryProviderIds: ["openai-codex"],
providerDiscoveryTimeoutMs: 5000,
providerDiscoveryEntriesOnly: true,
}),
);
expectModelsJsonPrewarmCall(cfg);
expect(piModelModuleLoadedMock).not.toHaveBeenCalled();
});