Files
i-want-to-heal-mmo/src/game/cameraOrbit.test.ts
T
2026-07-12 23:20:15 -04:00

36 lines
1008 B
TypeScript

import { describe, expect, it } from "vitest";
import {
DEFAULT_CAMERA_PITCH,
MAX_CAMERA_PITCH,
MIN_CAMERA_PITCH,
setCameraRelativeMovement,
updateCameraOrbit,
} from "./cameraOrbit";
describe("third-person camera orbit", () => {
it("rotates horizontal movement with camera yaw", () => {
const movement = { x: 0, z: 0 };
setCameraRelativeMovement(movement, 0, -1, 0);
expect(movement.x).toBeCloseTo(0);
expect(movement.z).toBeCloseTo(-1);
setCameraRelativeMovement(movement, 0, -1, Math.PI / 2);
expect(movement.x).toBeCloseTo(-1);
expect(movement.z).toBeCloseTo(0);
});
it("applies look input and clamps vertical orbit", () => {
const orbit = { yaw: 0, pitch: DEFAULT_CAMERA_PITCH };
updateCameraOrbit(orbit, 1, 0, 1);
expect(orbit.yaw).toBeCloseTo(-2.25);
updateCameraOrbit(orbit, 0, 1, 10);
expect(orbit.pitch).toBe(MAX_CAMERA_PITCH);
updateCameraOrbit(orbit, 0, -1, 10);
expect(orbit.pitch).toBe(MIN_CAMERA_PITCH);
});
});