返回 DeepSeek-Reasonix
layout.test.ts
根目录 / desktop / electron / src / main / browser / layout.test.ts
1 import assert from "node:assert/strict";
2 import { test } from "node:test";
3 import { browserLayoutInDIP } from "./layout.js";
4 import { validateLayout } from "./surfaceManager.js";
5
6 test("CSS browser bounds match native bounds at enlarged and reduced app zoom", () => {
7 const css = { x: 400, y: 100, width: 300, height: 250 };
8 assert.deepEqual(browserLayoutInDIP(css, 1.5), { x: 600, y: 150, width: 450, height: 375 });
9 assert.deepEqual(browserLayoutInDIP(css, 0.8), { x: 320, y: 80, width: 240, height: 200 });
10 assert.deepEqual(validateLayout(browserLayoutInDIP(css, 1.5)!, { width: 1000, height: 800 }),
11 { x: 600, y: 150, width: 400, height: 375 }, "native window clipping happens after conversion");
12 assert.equal(browserLayoutInDIP(null, 1.5), null);
13 assert.throws(() => browserLayoutInDIP(css, 0), /zoom/);
14 });
15
15 lines TYPESCRIPT