Files
formbricks/apps/web/modules/gateway-auth/lib/token.test.ts
T
2026-04-29 12:16:08 +05:30

46 lines
1.4 KiB
TypeScript

import { describe, expect, test, vi } from "vitest";
import { createGatewayServiceTokenResponse } from "./token";
const { mockCreateGatewayServiceToken } = vi.hoisted(() => ({
mockCreateGatewayServiceToken: vi.fn(),
}));
vi.mock("@/lib/jwt", () => ({
createGatewayServiceToken: mockCreateGatewayServiceToken,
}));
describe("createGatewayServiceTokenResponse", () => {
test("returns 401 when no authenticated user is present", () => {
const response = createGatewayServiceTokenResponse(null, "feedbackRecords");
expect(response.status).toBe(401);
expect(mockCreateGatewayServiceToken).not.toHaveBeenCalled();
});
test("returns the minted token payload for the requested service", async () => {
mockCreateGatewayServiceToken.mockReturnValue({
token: "gateway-token",
expiresAt: "2026-04-24T00:10:00.000Z",
});
const response = createGatewayServiceTokenResponse(
{
user: {
id: "user_1",
name: "Test User",
email: "test@example.com",
},
expires: "2026-04-25T00:00:00.000Z",
},
"feedbackRecords"
);
expect(response.status).toBe(200);
await expect(response.json()).resolves.toEqual({
token: "gateway-token",
expiresAt: "2026-04-24T00:10:00.000Z",
});
expect(mockCreateGatewayServiceToken).toHaveBeenCalledWith("user_1", "feedbackRecords");
});
});