diff options
| author | Danilo M. <danix@danix.xyz> | 2026-10-17 13:12:57 +0200 |
|---|---|---|
| committer | Danilo M. <danix@danix.xyz> | 2026-10-17 13:12:57 +0200 |
| commit | 9fad151c2782366a948882e1ae6aa725ed155a18 (patch) | |
| tree | 445431446ed6662ab7c6740eec73f7fff95f7e88 /desktop/island/test_logic.js | |
| parent | f114ab947afbca8b301ae5d2fa903667ef200711 (diff) | |
| download | quickshell-9fad151c2782366a948882e1ae6aa725ed155a18.tar.gz quickshell-9fad151c2782366a948882e1ae6aa725ed155a18.zip | |
island: corner position helper for the OBS webcam
Diffstat (limited to 'desktop/island/test_logic.js')
| -rw-r--r-- | desktop/island/test_logic.js | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/desktop/island/test_logic.js b/desktop/island/test_logic.js index ee237cc..d504c60 100644 --- a/desktop/island/test_logic.js +++ b/desktop/island/test_logic.js @@ -8,7 +8,7 @@ const assert = require("assert"); const src = fs.readFileSync(__dirname + "/Logic.js", "utf8") .replace(/^\.pragma library$/m, ""); const L = new Function(src + - "\nreturn { volumeIcon, vmRole, flagFor, privacyRoles, parseOpenWindow, obsElapsed };")(); + "\nreturn { volumeIcon, vmRole, flagFor, privacyRoles, parseOpenWindow, obsElapsed, cornerPos };")(); // Volume: muted or zero is muted, then thirds. assert.strictEqual(L.volumeIcon(0.5, true), "audio-volume-muted"); @@ -59,4 +59,10 @@ assert.strictEqual(L.obsElapsed(3599999), "59:59"); assert.strictEqual(L.obsElapsed(3661000), "1:01:01"); assert.strictEqual(L.obsElapsed(undefined), "00:00"); +// Corner positions: 1920x1080 canvas, 298x168 webcam, 16px margin. +for (const [c, x, y] of [["tl", 16, 16], ["tr", 1606, 16], ["bl", 16, 896], ["br", 1606, 896]]) + assert.deepStrictEqual(L.cornerPos(c, 1920, 1080, 298, 168, 16), { x, y }); +// An unknown corner reads as top-left, never undefined. +assert.deepStrictEqual(L.cornerPos("xx", 1920, 1080, 298, 168, 16), { x: 16, y: 16 }); + console.log("ok"); |
