| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- import {
- mockBoundingClientRect,
- render,
- restoreOriginalGetBoundingClientRect,
- waitFor,
- } from "./test-utils";
- import { Excalidraw } from "../packages/excalidraw/index";
- import { API } from "./helpers/api";
- const { h } = window;
- describe("appState", () => {
- it("scroll-to-content on init works with non-zero offsets", async () => {
- const WIDTH = 200;
- const HEIGHT = 100;
- const OFFSET_LEFT = 20;
- const OFFSET_TOP = 10;
- const ELEM_WIDTH = 100;
- const ELEM_HEIGHT = 60;
- mockBoundingClientRect();
- await render(
- <div>
- <Excalidraw
- initialData={{
- elements: [
- API.createElement({
- type: "rectangle",
- id: "A",
- width: ELEM_WIDTH,
- height: ELEM_HEIGHT,
- }),
- ],
- scrollToContent: true,
- }}
- />
- </div>,
- );
- await waitFor(() => {
- expect(h.state.width).toBe(200);
- expect(h.state.height).toBe(100);
- 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);
- });
- restoreOriginalGetBoundingClientRect();
- });
- });
|