Update unit tests for ThirdPersonNavigationController pointer lock handling

This commit is contained in:
2026-04-27 17:28:21 +02:00
parent d8da95f4c9
commit 93fe90a731

View File

@@ -179,8 +179,10 @@ describe("ThirdPersonNavigationController", () => {
const { context, domElement } = createRuntimeControllerContext(playerStart);
const controller = new ThirdPersonNavigationController();
const controllerInternals = controller as unknown as {
pointerLocked: boolean;
handleMouseMove(event: MouseEvent): void;
};
const requestPointerLock = vi.fn();
const mouseMoveEvent = new MouseEvent("mousemove");
Object.defineProperty(mouseMoveEvent, "movementX", {
@@ -191,13 +193,15 @@ describe("ThirdPersonNavigationController", () => {
configurable: true,
value: 0
});
Object.defineProperty(document, "pointerLockElement", {
Object.defineProperty(domElement, "requestPointerLock", {
configurable: true,
get: () => domElement
value: requestPointerLock
});
controller.activate(context);
document.dispatchEvent(new Event("pointerlockchange"));
expect(requestPointerLock).toHaveBeenCalledTimes(1);
controllerInternals.pointerLocked = true;
controllerInternals.handleMouseMove(mouseMoveEvent);
controller.update(0);