Files
healer-man/src/game/frameRateSettings.test.ts
T
2026-08-30 14:16:56 -04:00

34 lines
1.3 KiB
TypeScript

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();
});
});