Z ZPI 文档 v0.3.8
介绍页

源码

packages/desktop/test/pane-full-view.test.ts

typescript29 行查看原文
import { expect, test } from "vitest";
import {
  floatingAnchors,
  floatingAnswerPreview,
  floatingPosition,
  nearestFloatingAnchor,
} from "../src/renderer/pane-full-view.ts";

test("full-view geometry snaps to the same seven anchors and stays inside its workspace slot", () => {
  const slot = { left: 4, top: 52, width: 1000, height: 800 },
    size = { width: 560, height: 300 };
  for (const anchor of floatingAnchors) {
    const point = floatingPosition(anchor, slot, size);
    expect(point.left).toBeGreaterThanOrEqual(slot.left);
    expect(point.top).toBeGreaterThanOrEqual(slot.top);
    expect(point.left + size.width).toBeLessThanOrEqual(slot.left + slot.width);
    expect(point.top + size.height).toBeLessThanOrEqual(slot.top + slot.height);
    expect(nearestFloatingAnchor(point, slot, size)).toBe(anchor);
  }
  expect(
    floatingPosition("bottom-right", { left: 0, top: 0, width: 48, height: 48 }, { width: 48, height: 48 }),
  ).toEqual({ left: 0, top: 0 });
});
test("answer previews remove Markdown syntax without damaging snake_case", () => {
  expect(
    floatingAnswerPreview("# Done\n\n**updated** `snake_case` [file](file.ts)\n```ts\nignored\n```"),
  ).toBe("Done updated snake_case file");
});