mirror of
https://github.com/ksyasuda/SubMiner.git
synced 2026-03-02 06:22:42 -08:00
54 lines
1.9 KiB
TypeScript
54 lines
1.9 KiB
TypeScript
import test from 'node:test';
|
|
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 handleVisible = createUpdateVisibleOverlayBoundsHandler({
|
|
setOverlayWindowBounds: (layer) => calls.push(layer),
|
|
});
|
|
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']);
|
|
});
|
|
|
|
test('ensure overlay window level handler delegates to core', () => {
|
|
const calls: string[] = [];
|
|
const ensureLevel = createEnsureOverlayWindowLevelHandler({
|
|
ensureOverlayWindowLevelCore: () => calls.push('core'),
|
|
});
|
|
ensureLevel({});
|
|
assert.deepEqual(calls, ['core']);
|
|
});
|
|
|
|
test('enforce overlay layer order handler forwards resolved state', () => {
|
|
const calls: string[] = [];
|
|
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']);
|
|
});
|