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" );
});
});
Messung V0.5 in Prozent C=100 H=100 G=100
¤ Dauer der Verarbeitung: 0.8 Sekunden
(vorverarbeitet am 2026-06-06)
¤
*© Formatika GbR, Deutschland