Refactor camera state and view mode handling in e2e tests
This commit is contained in:
@@ -50,8 +50,6 @@ test("whitebox component selection modes keep object picking intentional across
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
await page.getByTestId("viewport-layout-quad").click();
|
|
||||||
|
|
||||||
await page.evaluate(({ target }) => {
|
await page.evaluate(({ target }) => {
|
||||||
const store = (window as Window & {
|
const store = (window as Window & {
|
||||||
__webeditor3dEditorStore?: {
|
__webeditor3dEditorStore?: {
|
||||||
@@ -64,24 +62,13 @@ test("whitebox component selection modes keep object picking intentional across
|
|||||||
orthographicZoom: number;
|
orthographicZoom: number;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
topRight: {
|
};
|
||||||
cameraState: {
|
};
|
||||||
|
setViewportPanelCameraState(panelId: "topLeft", cameraState: {
|
||||||
target: { x: number; y: number; z: number };
|
target: { x: number; y: number; z: number };
|
||||||
perspectiveOrbit: { radius: number; theta: number; phi: number };
|
perspectiveOrbit: { radius: number; theta: number; phi: number };
|
||||||
orthographicZoom: number;
|
orthographicZoom: number;
|
||||||
};
|
}): void;
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
setViewportPanelCameraState(
|
|
||||||
panelId: "topLeft" | "topRight",
|
|
||||||
cameraState: {
|
|
||||||
target: { x: number; y: number; z: number };
|
|
||||||
perspectiveOrbit: { radius: number; theta: number; phi: number };
|
|
||||||
orthographicZoom: number;
|
|
||||||
}
|
|
||||||
): void;
|
|
||||||
setViewportPanelViewMode(panelId: "topRight", viewMode: "top"): void;
|
|
||||||
};
|
};
|
||||||
}).__webeditor3dEditorStore;
|
}).__webeditor3dEditorStore;
|
||||||
|
|
||||||
@@ -90,7 +77,6 @@ test("whitebox component selection modes keep object picking intentional across
|
|||||||
}
|
}
|
||||||
|
|
||||||
const topLeftCameraState = store.getState().viewportPanels.topLeft.cameraState;
|
const topLeftCameraState = store.getState().viewportPanels.topLeft.cameraState;
|
||||||
const topRightCameraState = store.getState().viewportPanels.topRight.cameraState;
|
|
||||||
|
|
||||||
store.setViewportPanelCameraState("topLeft", {
|
store.setViewportPanelCameraState("topLeft", {
|
||||||
...topLeftCameraState,
|
...topLeftCameraState,
|
||||||
@@ -101,12 +87,6 @@ test("whitebox component selection modes keep object picking intentional across
|
|||||||
phi: 1.08
|
phi: 1.08
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
store.setViewportPanelViewMode("topRight", "top");
|
|
||||||
store.setViewportPanelCameraState("topRight", {
|
|
||||||
...topRightCameraState,
|
|
||||||
target,
|
|
||||||
orthographicZoom: 8
|
|
||||||
});
|
|
||||||
}, { target: brush.center });
|
}, { target: brush.center });
|
||||||
|
|
||||||
await expect(page.getByTestId("viewport-selection-mode-topLeft")).toHaveText("Object");
|
await expect(page.getByTestId("viewport-selection-mode-topLeft")).toHaveText("Object");
|
||||||
@@ -118,6 +98,44 @@ test("whitebox component selection modes keep object picking intentional across
|
|||||||
ids: [brush.id]
|
ids: [brush.id]
|
||||||
});
|
});
|
||||||
|
|
||||||
|
await page.getByTestId("viewport-layout-quad").click();
|
||||||
|
|
||||||
|
await page.evaluate(({ target }) => {
|
||||||
|
const store = (window as Window & {
|
||||||
|
__webeditor3dEditorStore?: {
|
||||||
|
getState(): {
|
||||||
|
viewportPanels: {
|
||||||
|
topRight: {
|
||||||
|
cameraState: {
|
||||||
|
target: { x: number; y: number; z: number };
|
||||||
|
perspectiveOrbit: { radius: number; theta: number; phi: number };
|
||||||
|
orthographicZoom: number;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
setViewportPanelViewMode(panelId: "topRight", viewMode: "top"): void;
|
||||||
|
setViewportPanelCameraState(panelId: "topRight", cameraState: {
|
||||||
|
target: { x: number; y: number; z: number };
|
||||||
|
perspectiveOrbit: { radius: number; theta: number; phi: number };
|
||||||
|
orthographicZoom: number;
|
||||||
|
}): void;
|
||||||
|
};
|
||||||
|
}).__webeditor3dEditorStore;
|
||||||
|
|
||||||
|
if (store === undefined) {
|
||||||
|
throw new Error("Editor store debug hook is unavailable.");
|
||||||
|
}
|
||||||
|
|
||||||
|
const topRightCameraState = store.getState().viewportPanels.topRight.cameraState;
|
||||||
|
store.setViewportPanelViewMode("topRight", "top");
|
||||||
|
store.setViewportPanelCameraState("topRight", {
|
||||||
|
...topRightCameraState,
|
||||||
|
target,
|
||||||
|
orthographicZoom: 8
|
||||||
|
});
|
||||||
|
}, { target: brush.center });
|
||||||
|
|
||||||
await page.getByTestId("whitebox-selection-mode-face").click();
|
await page.getByTestId("whitebox-selection-mode-face").click();
|
||||||
await expect(page.getByTestId("viewport-selection-mode-topRight")).toHaveText("Face");
|
await expect(page.getByTestId("viewport-selection-mode-topRight")).toHaveText("Face");
|
||||||
await clickViewportAtRatio(page, "topRight", 0.5, 0.5);
|
await clickViewportAtRatio(page, "topRight", 0.5, 0.5);
|
||||||
|
|||||||
Reference in New Issue
Block a user