Update ThirdPersonNavigationController unit tests to use internal pointer handlers instead of global event dispatching

This commit is contained in:
2026-04-26 21:44:01 +02:00
parent c9327d6239
commit 1ef30469eb

View File

@@ -113,6 +113,10 @@ function createRuntimeControllerContext(
describe("ThirdPersonNavigationController", () => { describe("ThirdPersonNavigationController", () => {
afterEach(() => { afterEach(() => {
vi.restoreAllMocks(); vi.restoreAllMocks();
Object.defineProperty(navigator, "getGamepads", {
configurable: true,
value: undefined
});
}); });
it("uses authored keyboard bindings instead of hardcoded WASD movement", () => { it("uses authored keyboard bindings instead of hardcoded WASD movement", () => {
@@ -461,6 +465,9 @@ describe("ThirdPersonNavigationController", () => {
cameraYawRadians: number; cameraYawRadians: number;
pitchRadians: number; pitchRadians: number;
targetAssistLookOffsetY: number; targetAssistLookOffsetY: number;
handlePointerDown(event: PointerEvent): void;
handlePointerMove(event: PointerEvent): void;
handlePointerUp(): void;
}; };
const targetContext = { const targetContext = {
...context, ...context,
@@ -484,19 +491,15 @@ describe("ThirdPersonNavigationController", () => {
controllerInternals.pitchRadians = 1.1; controllerInternals.pitchRadians = 1.1;
controllerInternals.targetAssistLookOffsetY = 0; controllerInternals.targetAssistLookOffsetY = 0;
targetContext.domElement.dispatchEvent( controllerInternals.handlePointerDown({
new PointerEvent("pointerdown", {
button: 0, button: 0,
clientX: 0, clientX: 0,
clientY: 0 clientY: 0
}) } as PointerEvent);
); controllerInternals.handlePointerMove({
window.dispatchEvent(
new PointerEvent("pointermove", {
clientX: 30, clientX: 30,
clientY: 12 clientY: 12
}) } as PointerEvent);
);
controller.update(0.016); controller.update(0.016);
@@ -504,7 +507,7 @@ describe("ThirdPersonNavigationController", () => {
expect(controllerInternals.pitchRadians).toBeCloseTo(1.1, 5); expect(controllerInternals.pitchRadians).toBeCloseTo(1.1, 5);
expect(controllerInternals.targetAssistLookOffsetY).toBeCloseTo(0, 5); expect(controllerInternals.targetAssistLookOffsetY).toBeCloseTo(0, 5);
window.dispatchEvent(new PointerEvent("pointerup")); controllerInternals.handlePointerUp();
controller.deactivate(targetContext); controller.deactivate(targetContext);
}); });