72 lines · 2.2 KB · TypeScript
RawDownload
import { describe, expect, it } from "vite-plus/test"; import { browserViewportSettingKey } from "~/browser/browserViewportLayout"; import { isPreviewViewportReady } from "./previewViewportReadiness"; describe("isPreviewViewportReady", () => {  const landscape = {    _tag: "preset",    width: 844,    height: 390,    presetId: "iphone-12-pro",  } as const;   it("rejects a stale same-mode preset while React applies the requested orientation", () => {    expect(      isPreviewViewportReady({        setting: landscape,        appliedSettingKey: "preset:390:844:iphone-12-pro",        declaredViewport: { width: 390, height: 844 },        renderedViewport: { width: 390, height: 844 },      }),    ).toBe(false);  });   it("requires both the declaration and guest viewport to match a fixed request", () => {    const appliedSettingKey = browserViewportSettingKey(landscape);    expect(      isPreviewViewportReady({        setting: landscape,        appliedSettingKey,        declaredViewport: { width: 390, height: 844 },        renderedViewport: { width: 844, height: 390 },      }),    ).toBe(false);    expect(      isPreviewViewportReady({        setting: landscape,        appliedSettingKey,        declaredViewport: { width: 844, height: 390 },        renderedViewport: { width: 844, height: 390 },      }),    ).toBe(true);  });   it("allows one pixel of Electron rounding tolerance in every mode", () => {    expect(      isPreviewViewportReady({        setting: { _tag: "fill" },        appliedSettingKey: "fill",        declaredViewport: { width: 500, height: 700 },        renderedViewport: { width: 501, height: 699 },      }),    ).toBe(true);    expect(      isPreviewViewportReady({        setting: landscape,        appliedSettingKey: browserViewportSettingKey(landscape),        declaredViewport: { width: 844, height: 390 },        renderedViewport: { width: 845, height: 389 },      }),    ).toBe(true);    expect(      isPreviewViewportReady({        setting: landscape,        appliedSettingKey: browserViewportSettingKey(landscape),        declaredViewport: { width: 844, height: 390 },        renderedViewport: { width: 846, height: 390 },      }),    ).toBe(false);  });});