|
@@ -5,11 +5,12 @@ import { centerPoint } from "../math";
|
|
|
import { reseed } from "../random";
|
|
|
import * as Renderer from "../renderer/renderScene";
|
|
|
import { Keyboard, Pointer } from "./helpers/ui";
|
|
|
-import { screen, render, fireEvent } from "./test-utils";
|
|
|
+import { screen, render, fireEvent, GlobalTestState } from "./test-utils";
|
|
|
import { API } from "../tests/helpers/api";
|
|
|
import { Point } from "../types";
|
|
|
import { KEYS } from "../keys";
|
|
|
import { LinearElementEditor } from "../element/linearElementEditor";
|
|
|
+import { queryByText } from "@testing-library/react";
|
|
|
|
|
|
const renderScene = jest.spyOn(Renderer, "renderScene");
|
|
|
|
|
@@ -150,6 +151,42 @@ describe(" Test Linear Elements", () => {
|
|
|
`);
|
|
|
});
|
|
|
|
|
|
+ it("should allow entering and exiting line editor via context menu", () => {
|
|
|
+ createTwoPointerLinearElement("line");
|
|
|
+ fireEvent.contextMenu(GlobalTestState.canvas, {
|
|
|
+ button: 2,
|
|
|
+ clientX: midpoint[0],
|
|
|
+ clientY: midpoint[1],
|
|
|
+ });
|
|
|
+ // Enter line editor
|
|
|
+ let contextMenu = document.querySelector(".context-menu");
|
|
|
+ fireEvent.contextMenu(GlobalTestState.canvas, {
|
|
|
+ button: 2,
|
|
|
+ clientX: midpoint[0],
|
|
|
+ clientY: midpoint[1],
|
|
|
+ });
|
|
|
+ fireEvent.click(queryByText(contextMenu as HTMLElement, "Edit line")!);
|
|
|
+
|
|
|
+ expect(h.state.editingLinearElement?.elementId).toEqual(h.elements[0].id);
|
|
|
+
|
|
|
+ // Exiting line editor
|
|
|
+ fireEvent.contextMenu(GlobalTestState.canvas, {
|
|
|
+ button: 2,
|
|
|
+ clientX: midpoint[0],
|
|
|
+ clientY: midpoint[1],
|
|
|
+ });
|
|
|
+ contextMenu = document.querySelector(".context-menu");
|
|
|
+ fireEvent.contextMenu(GlobalTestState.canvas, {
|
|
|
+ button: 2,
|
|
|
+ clientX: midpoint[0],
|
|
|
+ clientY: midpoint[1],
|
|
|
+ });
|
|
|
+ fireEvent.click(
|
|
|
+ queryByText(contextMenu as HTMLElement, "Exit line editor")!,
|
|
|
+ );
|
|
|
+ expect(h.state.editingLinearElement?.elementId).toBeUndefined();
|
|
|
+ });
|
|
|
+
|
|
|
describe("Inside editor", () => {
|
|
|
it("should allow dragging line from midpoint in 2 pointer lines", async () => {
|
|
|
createTwoPointerLinearElement("line");
|