forked from phenom/healer-man
34 lines
1.3 KiB
TypeScript
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();
|
|
});
|
|
});
|