Update transform session command tests for object mode requirements
This commit is contained in:
@@ -51,7 +51,7 @@ const modelAsset = {
|
|||||||
} satisfies ModelAssetRecord;
|
} satisfies ModelAssetRecord;
|
||||||
|
|
||||||
describe("transform session commit commands", () => {
|
describe("transform session commit commands", () => {
|
||||||
it("resolves a selected brush face to the whole brush transform target", () => {
|
it("requires Object mode for whitebox box transforms and does not silently promote component selections", () => {
|
||||||
const brush = createBoxBrush({
|
const brush = createBoxBrush({
|
||||||
id: "brush-main"
|
id: "brush-main"
|
||||||
});
|
});
|
||||||
@@ -62,23 +62,61 @@ describe("transform session commit commands", () => {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
const resolved = resolveTransformTarget(document, {
|
const faceResolved = resolveTransformTarget(document, {
|
||||||
kind: "brushFace",
|
kind: "brushFace",
|
||||||
brushId: brush.id,
|
brushId: brush.id,
|
||||||
faceId: "posZ"
|
faceId: "posZ"
|
||||||
});
|
});
|
||||||
|
const edgeResolved = resolveTransformTarget(
|
||||||
|
document,
|
||||||
|
{
|
||||||
|
kind: "brushEdge",
|
||||||
|
brushId: brush.id,
|
||||||
|
edgeId: "edgeX_posY_negZ"
|
||||||
|
},
|
||||||
|
"edge"
|
||||||
|
);
|
||||||
|
const vertexResolved = resolveTransformTarget(
|
||||||
|
document,
|
||||||
|
{
|
||||||
|
kind: "brushVertex",
|
||||||
|
brushId: brush.id,
|
||||||
|
vertexId: "posX_posY_negZ"
|
||||||
|
},
|
||||||
|
"vertex"
|
||||||
|
);
|
||||||
|
const faceModeBrushResolved = resolveTransformTarget(
|
||||||
|
document,
|
||||||
|
{
|
||||||
|
kind: "brushes",
|
||||||
|
ids: [brush.id]
|
||||||
|
},
|
||||||
|
"face"
|
||||||
|
);
|
||||||
|
const objectResolved = resolveTransformTarget(document, {
|
||||||
|
kind: "brushes",
|
||||||
|
ids: [brush.id]
|
||||||
|
});
|
||||||
|
|
||||||
expect(resolved.target).toMatchObject({
|
expect(faceResolved.target).toBeNull();
|
||||||
|
expect(faceResolved.message).toContain("Face selection");
|
||||||
|
expect(edgeResolved.target).toBeNull();
|
||||||
|
expect(edgeResolved.message).toContain("Edge transforms");
|
||||||
|
expect(vertexResolved.target).toBeNull();
|
||||||
|
expect(vertexResolved.message).toContain("Vertex transforms");
|
||||||
|
expect(faceModeBrushResolved.target).toBeNull();
|
||||||
|
expect(faceModeBrushResolved.message).toContain("Object mode");
|
||||||
|
expect(objectResolved.target).toMatchObject({
|
||||||
kind: "brush",
|
kind: "brush",
|
||||||
brushId: brush.id,
|
brushId: brush.id,
|
||||||
initialCenter: brush.center,
|
initialCenter: brush.center,
|
||||||
initialRotationDegrees: brush.rotationDegrees,
|
initialRotationDegrees: brush.rotationDegrees,
|
||||||
initialSize: brush.size
|
initialSize: brush.size
|
||||||
});
|
});
|
||||||
expect(resolved.target).not.toBeNull();
|
expect(objectResolved.target).not.toBeNull();
|
||||||
expect(supportsTransformOperation(resolved.target as NonNullable<typeof resolved.target>, "translate")).toBe(true);
|
expect(supportsTransformOperation(objectResolved.target as NonNullable<typeof objectResolved.target>, "translate")).toBe(true);
|
||||||
expect(supportsTransformOperation(resolved.target as NonNullable<typeof resolved.target>, "rotate")).toBe(true);
|
expect(supportsTransformOperation(objectResolved.target as NonNullable<typeof objectResolved.target>, "rotate")).toBe(true);
|
||||||
expect(supportsTransformOperation(resolved.target as NonNullable<typeof resolved.target>, "scale")).toBe(true);
|
expect(supportsTransformOperation(objectResolved.target as NonNullable<typeof objectResolved.target>, "scale")).toBe(true);
|
||||||
});
|
});
|
||||||
|
|
||||||
it("commits whitebox box rotate and scale transforms with undo and redo", () => {
|
it("commits whitebox box rotate and scale transforms with undo and redo", () => {
|
||||||
|
|||||||
Reference in New Issue
Block a user