|
@@ -0,0 +1,48 @@
|
|
|
+import React from "react";
|
|
|
+import { render, waitFor } from "./test-utils";
|
|
|
+import Excalidraw from "../packages/excalidraw/index";
|
|
|
+import { API } from "./helpers/api";
|
|
|
+
|
|
|
+const { h } = window;
|
|
|
+
|
|
|
+describe("appState", () => {
|
|
|
+ it("scroll-to-center on init works with non-zero offsets", async () => {
|
|
|
+ const WIDTH = 600;
|
|
|
+ const HEIGHT = 700;
|
|
|
+ const OFFSET_LEFT = 200;
|
|
|
+ const OFFSET_TOP = 100;
|
|
|
+
|
|
|
+ const ELEM_WIDTH = 100;
|
|
|
+ const ELEM_HEIGHT = 60;
|
|
|
+
|
|
|
+ await render(
|
|
|
+ <Excalidraw
|
|
|
+ width={WIDTH}
|
|
|
+ height={HEIGHT}
|
|
|
+ offsetLeft={OFFSET_LEFT}
|
|
|
+ offsetTop={OFFSET_TOP}
|
|
|
+ initialData={{
|
|
|
+ elements: [
|
|
|
+ API.createElement({
|
|
|
+ type: "rectangle",
|
|
|
+ id: "A",
|
|
|
+ width: ELEM_WIDTH,
|
|
|
+ height: ELEM_HEIGHT,
|
|
|
+ }),
|
|
|
+ ],
|
|
|
+ }}
|
|
|
+ />,
|
|
|
+ );
|
|
|
+
|
|
|
+ await waitFor(() => {
|
|
|
+ expect(h.state.width).toBe(WIDTH);
|
|
|
+ expect(h.state.height).toBe(HEIGHT);
|
|
|
+ expect(h.state.offsetLeft).toBe(OFFSET_LEFT);
|
|
|
+ expect(h.state.offsetTop).toBe(OFFSET_TOP);
|
|
|
+
|
|
|
+ // assert scroll is in center
|
|
|
+ expect(h.state.scrollX).toBe(WIDTH / 2 - ELEM_WIDTH / 2);
|
|
|
+ expect(h.state.scrollY).toBe(HEIGHT / 2 - ELEM_HEIGHT / 2);
|
|
|
+ });
|
|
|
+ });
|
|
|
+});
|