Files
openclaw/extensions/xai/src/tool-config-shared.test.ts
Vincent Koc 65842aabad refactor(providers): share google and xai provider helpers (#60722)
* 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
2026-04-04 16:14:15 +09:00

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();
});
});