Files
webeditor3d/tests/unit/viewport-layout.test.ts

46 lines
1.5 KiB
TypeScript

import { describe, expect, it } from "vitest";
import {
createDefaultViewportLayoutState,
getViewportDisplayModeLabel,
getViewportLayoutModeLabel,
getViewportPanelLabel
} from "../../src/viewport-three/viewport-layout";
describe("viewport layout", () => {
it("defaults to a quad-ready panel arrangement with orthographic authoring panes", () => {
const layout = createDefaultViewportLayoutState();
expect(layout.layoutMode).toBe("single");
expect(layout.activePanelId).toBe("topLeft");
expect(layout.panels.topLeft).toMatchObject({
viewMode: "perspective",
displayMode: "normal"
});
expect(layout.panels.topRight).toMatchObject({
viewMode: "top",
displayMode: "authoring"
});
expect(layout.panels.bottomLeft).toMatchObject({
viewMode: "front",
displayMode: "authoring"
});
expect(layout.panels.bottomRight).toMatchObject({
viewMode: "side",
displayMode: "authoring"
});
expect(layout.viewportQuadSplit).toEqual({
x: 0.5,
y: 0.5
});
});
it("exposes readable labels for the layout and panel chrome", () => {
expect(getViewportLayoutModeLabel("single")).toBe("Single View");
expect(getViewportLayoutModeLabel("quad")).toBe("4-Panel");
expect(getViewportDisplayModeLabel("authoring")).toBe("Authoring");
expect(getViewportDisplayModeLabel("wireframe")).toBe("Wireframe");
expect(getViewportPanelLabel("topRight")).toBe("Top Right");
});
});