mirror of
https://github.com/formbricks/formbricks.git
synced 2026-05-06 19:35:53 -05:00
ef973c8995
Co-authored-by: Harsh Bhat <90265455+harshsbhat@users.noreply.github.com> Co-authored-by: Johannes <johannes@formbricks.com> Co-authored-by: Piyush Gupta <56182734+gupta-piyush19@users.noreply.github.com> Co-authored-by: Aditya <162564995+Naidu-4444@users.noreply.github.com> Co-authored-by: Piyush Gupta <piyushguptaa2z123@gmail.com> Co-authored-by: pandeymangg <anshuman.pandey9999@gmail.com> Co-authored-by: Dhruwang Jariwala <67850763+Dhruwang@users.noreply.github.com> Co-authored-by: Johannes <72809645+jobenjada@users.noreply.github.com> Co-authored-by: Jakob Schott <154420406+jakobsitory@users.noreply.github.com> Co-authored-by: Suraj <surajsuthar0067@gmail.com> Co-authored-by: Kshitij Sharma <63995641+kshitij-codes@users.noreply.github.com> Co-authored-by: Dhruwang <dhruwangjariwala18@gmail.com> Co-authored-by: Matti Nannt <mail@matthiasnannt.com>
40 lines
1.7 KiB
TypeScript
40 lines
1.7 KiB
TypeScript
import * as constants from "@/lib/constants";
|
|
import { rateLimit } from "@/lib/utils/rate-limit";
|
|
import { beforeEach, describe, expect, test, vi } from "vitest";
|
|
import type { Mock } from "vitest";
|
|
|
|
vi.mock("@/lib/utils/rate-limit", () => ({ rateLimit: vi.fn() }));
|
|
|
|
describe("bucket middleware rate limiters", () => {
|
|
beforeEach(() => {
|
|
vi.resetModules();
|
|
vi.clearAllMocks();
|
|
const mockedRateLimit = rateLimit as unknown as Mock;
|
|
mockedRateLimit.mockImplementation((config) => config);
|
|
});
|
|
|
|
test("clientSideApiEndpointsLimiter uses CLIENT_SIDE_API_RATE_LIMIT settings", async () => {
|
|
const { clientSideApiEndpointsLimiter } = await import("./bucket");
|
|
expect(rateLimit).toHaveBeenCalledWith({
|
|
interval: constants.CLIENT_SIDE_API_RATE_LIMIT.interval,
|
|
allowedPerInterval: constants.CLIENT_SIDE_API_RATE_LIMIT.allowedPerInterval,
|
|
});
|
|
expect(clientSideApiEndpointsLimiter).toEqual({
|
|
interval: constants.CLIENT_SIDE_API_RATE_LIMIT.interval,
|
|
allowedPerInterval: constants.CLIENT_SIDE_API_RATE_LIMIT.allowedPerInterval,
|
|
});
|
|
});
|
|
|
|
test("syncUserIdentificationLimiter uses SYNC_USER_IDENTIFICATION_RATE_LIMIT settings", async () => {
|
|
const { syncUserIdentificationLimiter } = await import("./bucket");
|
|
expect(rateLimit).toHaveBeenCalledWith({
|
|
interval: constants.SYNC_USER_IDENTIFICATION_RATE_LIMIT.interval,
|
|
allowedPerInterval: constants.SYNC_USER_IDENTIFICATION_RATE_LIMIT.allowedPerInterval,
|
|
});
|
|
expect(syncUserIdentificationLimiter).toEqual({
|
|
interval: constants.SYNC_USER_IDENTIFICATION_RATE_LIMIT.interval,
|
|
allowedPerInterval: constants.SYNC_USER_IDENTIFICATION_RATE_LIMIT.allowedPerInterval,
|
|
});
|
|
});
|
|
});
|