Arrows binds/unbinds to bindable elements when moved with arrow keys (Issue #2103) (#2150)

This commit is contained in:
João Forja 2020-09-13 18:17:16 +01:00 committed by GitHub
parent b9d584714a
commit 242ccac290
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 38 additions and 2 deletions

View file

@ -2676,7 +2676,7 @@ Object {
exports[`regression tests arrow keys: [end of test] number of elements 1`] = `1`;
exports[`regression tests arrow keys: [end of test] number of renders 1`] = `13`;
exports[`regression tests arrow keys: [end of test] number of renders 1`] = `19`;
exports[`regression tests can drag element that covers another element, while another elem is selected: [end of test] appState 1`] = `
Object {

View file

@ -1,7 +1,7 @@
import React from "react";
import { render } from "./test-utils";
import App from "../components/App";
import { UI, Pointer } from "./helpers/ui";
import { UI, Pointer, Keyboard } from "./helpers/ui";
import { getTransformHandles } from "../element/transformHandles";
import { API } from "./helpers/api";
@ -79,4 +79,28 @@ describe("element binding", () => {
expect(API.getSelectedElement().type).toBe("rectangle");
},
);
it("should bind/unbind arrow when moving it with keyboard", () => {
const rectangle = UI.createElement("rectangle", {
x: 75,
y: 0,
size: 100,
});
// Creates arrow 1px away from bidding with rectangle
const arrow = UI.createElement("arrow", {
x: 0,
y: 0,
size: 50,
});
expect(arrow.endBinding).toBe(null);
expect(API.getSelectedElement().type).toBe("arrow");
Keyboard.hotkeyPress("ARROW_RIGHT");
expect(arrow.endBinding?.elementId).toBe(rectangle.id);
Keyboard.hotkeyPress("ARROW_LEFT");
expect(arrow.endBinding).toBe(null);
});
});