| 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 |