mirror of
https://github.com/openclaw/openclaw.git
synced 2026-04-10 00:31:22 +00:00
* refactor(google): share oauth token helpers * refactor(xai): share tool auth fallback helpers * refactor(xai): share tool auth resolution * refactor(xai): share tool config helpers * refactor(xai): share fallback auth helpers * refactor(xai): share responses tool helpers * refactor(google): share http request config helper * fix(xai): re-export shared web search extractor * fix(xai): import plugin config type * fix(providers): preserve default google network guard
37 lines
1.3 KiB
TypeScript
37 lines
1.3 KiB
TypeScript
import { describe, expect, it } from "vitest";
|
|
import {
|
|
coerceXaiToolConfig,
|
|
resolveNormalizedXaiToolModel,
|
|
resolvePositiveIntegerToolConfig,
|
|
} from "./tool-config-shared.js";
|
|
|
|
describe("xai tool config helpers", () => {
|
|
it("coerces non-record config to an empty object", () => {
|
|
expect(coerceXaiToolConfig(undefined)).toEqual({});
|
|
expect(coerceXaiToolConfig([] as unknown as Record<string, unknown>)).toEqual({});
|
|
});
|
|
|
|
it("normalizes configured model ids and falls back to the default model", () => {
|
|
expect(
|
|
resolveNormalizedXaiToolModel({
|
|
config: { model: " grok-4.1-fast " },
|
|
defaultModel: "grok-4-1-fast",
|
|
}),
|
|
).toBe("grok-4.1-fast");
|
|
|
|
expect(
|
|
resolveNormalizedXaiToolModel({
|
|
config: {},
|
|
defaultModel: "grok-4-1-fast",
|
|
}),
|
|
).toBe("grok-4-1-fast");
|
|
});
|
|
|
|
it("accepts only positive finite numeric turn counts", () => {
|
|
expect(resolvePositiveIntegerToolConfig({ maxTurns: 2.9 }, "maxTurns")).toBe(2);
|
|
expect(resolvePositiveIntegerToolConfig({ maxTurns: 0 }, "maxTurns")).toBeUndefined();
|
|
expect(resolvePositiveIntegerToolConfig({ maxTurns: Number.NaN }, "maxTurns")).toBeUndefined();
|
|
expect(resolvePositiveIntegerToolConfig(undefined, "maxTurns")).toBeUndefined();
|
|
});
|
|
});
|