mirror of https://github.com/openclaw/openclaw.git
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");
|
|
});
|
|
});
|