mirror of
https://github.com/ksyasuda/SubMiner.git
synced 2026-05-13 20:12:54 -07:00
Overlay 2.0 (#12)
This commit is contained in:
@@ -3,26 +3,17 @@ import assert from 'node:assert/strict';
|
||||
import {
|
||||
createEnforceOverlayLayerOrderHandler,
|
||||
createEnsureOverlayWindowLevelHandler,
|
||||
createUpdateInvisibleOverlayBoundsHandler,
|
||||
createUpdateVisibleOverlayBoundsHandler,
|
||||
} from './overlay-window-layout';
|
||||
|
||||
test('visible bounds handler writes visible layer geometry', () => {
|
||||
const calls: string[] = [];
|
||||
const calls: Array<{ x: number; y: number; width: number; height: number }> = [];
|
||||
const handleVisible = createUpdateVisibleOverlayBoundsHandler({
|
||||
setOverlayWindowBounds: (layer) => calls.push(layer),
|
||||
setOverlayWindowBounds: (geometry) => calls.push(geometry),
|
||||
});
|
||||
handleVisible({ x: 0, y: 0, width: 100, height: 50 });
|
||||
assert.deepEqual(calls, ['visible']);
|
||||
});
|
||||
|
||||
test('invisible bounds handler writes invisible layer geometry', () => {
|
||||
const calls: string[] = [];
|
||||
const handleInvisible = createUpdateInvisibleOverlayBoundsHandler({
|
||||
setOverlayWindowBounds: (layer) => calls.push(layer),
|
||||
});
|
||||
handleInvisible({ x: 0, y: 0, width: 100, height: 50 });
|
||||
assert.deepEqual(calls, ['invisible']);
|
||||
const geometry = { x: 0, y: 0, width: 100, height: 50 };
|
||||
handleVisible(geometry);
|
||||
assert.deepEqual(calls, [geometry]);
|
||||
});
|
||||
|
||||
test('ensure overlay window level handler delegates to core', () => {
|
||||
@@ -39,15 +30,12 @@ test('enforce overlay layer order handler forwards resolved state', () => {
|
||||
const enforce = createEnforceOverlayLayerOrderHandler({
|
||||
enforceOverlayLayerOrderCore: (params) => {
|
||||
calls.push(params.visibleOverlayVisible ? 'visible-on' : 'visible-off');
|
||||
calls.push(params.invisibleOverlayVisible ? 'invisible-on' : 'invisible-off');
|
||||
params.ensureOverlayWindowLevel({});
|
||||
},
|
||||
getVisibleOverlayVisible: () => true,
|
||||
getInvisibleOverlayVisible: () => false,
|
||||
getMainWindow: () => ({}),
|
||||
getInvisibleWindow: () => ({}),
|
||||
ensureOverlayWindowLevel: () => calls.push('ensure-level'),
|
||||
});
|
||||
enforce();
|
||||
assert.deepEqual(calls, ['visible-on', 'invisible-off', 'ensure-level']);
|
||||
assert.deepEqual(calls, ['visible-on', 'ensure-level']);
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user