mirror of
https://github.com/openclaw/openclaw.git
synced 2026-04-05 22:32:12 +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
40 lines
1.2 KiB
TypeScript
40 lines
1.2 KiB
TypeScript
import { describe, expect, it } from "vitest";
|
|
import {
|
|
formatGoogleOauthApiKey,
|
|
parseGoogleOauthApiKey,
|
|
parseGoogleUsageToken,
|
|
} from "./oauth-token-shared.js";
|
|
|
|
describe("google oauth token helpers", () => {
|
|
it("formats oauth credentials with project-aware payloads", () => {
|
|
expect(
|
|
formatGoogleOauthApiKey({
|
|
type: "oauth",
|
|
access: "token-123",
|
|
projectId: "project-abc",
|
|
}),
|
|
).toBe(JSON.stringify({ token: "token-123", projectId: "project-abc" }));
|
|
});
|
|
|
|
it("returns an empty string for non-oauth credentials", () => {
|
|
expect(formatGoogleOauthApiKey({ type: "token", access: "token-123" })).toBe("");
|
|
});
|
|
|
|
it("parses project-aware oauth payloads for usage auth", () => {
|
|
expect(parseGoogleUsageToken(JSON.stringify({ token: "usage-token" }))).toBe("usage-token");
|
|
});
|
|
|
|
it("parses structured oauth payload fields", () => {
|
|
expect(
|
|
parseGoogleOauthApiKey(JSON.stringify({ token: "usage-token", projectId: "proj-1" })),
|
|
).toEqual({
|
|
token: "usage-token",
|
|
projectId: "proj-1",
|
|
});
|
|
});
|
|
|
|
it("falls back to the raw token when the payload is not JSON", () => {
|
|
expect(parseGoogleUsageToken("raw-token")).toBe("raw-token");
|
|
});
|
|
});
|