import { describe, expect, it } from "vitest"; import { GAMEPLAY_FRAME_RATE_LIMITS, PREVIEW_FRAME_RATE_LIMITS, frameRateLimitLabel, nextFrameRateLimit, normalizeGameplayFrameRateLimit, normalizePreviewFrameRateLimit, numericFrameRateLimit, } from "./frameRateSettings"; describe("frame-rate settings", () => { it("normalizes persisted gameplay and preview limits", () => { expect(normalizeGameplayFrameRateLimit(30)).toBe(30); expect(normalizeGameplayFrameRateLimit("display")).toBe("display"); expect(normalizeGameplayFrameRateLimit(144)).toBe(60); expect(normalizePreviewFrameRateLimit(15)).toBe(15); expect(normalizePreviewFrameRateLimit("invalid", 60)).toBe(60); }); it("cycles through each menu order", () => { expect(nextFrameRateLimit(30, GAMEPLAY_FRAME_RATE_LIMITS)).toBe(60); expect(nextFrameRateLimit("display", GAMEPLAY_FRAME_RATE_LIMITS)).toBe(30); expect(nextFrameRateLimit(30, PREVIEW_FRAME_RATE_LIMITS)).toBe(60); }); it("formats and resolves capped versus display-refresh modes", () => { expect(frameRateLimitLabel(60)).toBe("60 FPS"); expect(frameRateLimitLabel("display")).toBe("Display refresh"); expect(numericFrameRateLimit(30)).toBe(30); expect(numericFrameRateLimit("display")).toBeNull(); }); });