Update unit tests for ThirdPersonNavigationController pointer lock handling
This commit is contained in:
@@ -179,8 +179,10 @@ describe("ThirdPersonNavigationController", () => {
|
|||||||
const { context, domElement } = createRuntimeControllerContext(playerStart);
|
const { context, domElement } = createRuntimeControllerContext(playerStart);
|
||||||
const controller = new ThirdPersonNavigationController();
|
const controller = new ThirdPersonNavigationController();
|
||||||
const controllerInternals = controller as unknown as {
|
const controllerInternals = controller as unknown as {
|
||||||
|
pointerLocked: boolean;
|
||||||
handleMouseMove(event: MouseEvent): void;
|
handleMouseMove(event: MouseEvent): void;
|
||||||
};
|
};
|
||||||
|
const requestPointerLock = vi.fn();
|
||||||
const mouseMoveEvent = new MouseEvent("mousemove");
|
const mouseMoveEvent = new MouseEvent("mousemove");
|
||||||
|
|
||||||
Object.defineProperty(mouseMoveEvent, "movementX", {
|
Object.defineProperty(mouseMoveEvent, "movementX", {
|
||||||
@@ -191,13 +193,15 @@ describe("ThirdPersonNavigationController", () => {
|
|||||||
configurable: true,
|
configurable: true,
|
||||||
value: 0
|
value: 0
|
||||||
});
|
});
|
||||||
Object.defineProperty(document, "pointerLockElement", {
|
Object.defineProperty(domElement, "requestPointerLock", {
|
||||||
configurable: true,
|
configurable: true,
|
||||||
get: () => domElement
|
value: requestPointerLock
|
||||||
});
|
});
|
||||||
|
|
||||||
controller.activate(context);
|
controller.activate(context);
|
||||||
document.dispatchEvent(new Event("pointerlockchange"));
|
expect(requestPointerLock).toHaveBeenCalledTimes(1);
|
||||||
|
|
||||||
|
controllerInternals.pointerLocked = true;
|
||||||
controllerInternals.handleMouseMove(mouseMoveEvent);
|
controllerInternals.handleMouseMove(mouseMoveEvent);
|
||||||
controller.update(0);
|
controller.update(0);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user