Files
SubMiner/src/main/runtime/linux-visible-overlay-window-mode.test.ts
T

109 lines
3.1 KiB
TypeScript

import assert from 'node:assert/strict';
import test from 'node:test';
import {
resolveLinuxVisibleOverlayWindowModeAction,
shouldExitFullscreenOverrideForTrackedGeometry,
} from './linux-visible-overlay-window-mode';
test('linux overlay mode sync records fullscreen without creating a hidden overlay', () => {
assert.deepEqual(
resolveLinuxVisibleOverlayWindowModeAction({
currentMode: 'managed',
fullscreen: true,
hasLiveWindow: false,
visibleOverlayVisible: false,
}),
{
nextMode: 'fullscreen-override',
shouldCreateWindow: false,
shouldDestroyCurrentWindow: false,
shouldRefreshVisibleOverlay: false,
createWindowTiming: 'none',
},
);
});
test('linux overlay mode sync destroys stale hidden window without replacing it', () => {
assert.deepEqual(
resolveLinuxVisibleOverlayWindowModeAction({
currentMode: 'managed',
fullscreen: true,
hasLiveWindow: true,
visibleOverlayVisible: false,
}),
{
nextMode: 'fullscreen-override',
shouldCreateWindow: false,
shouldDestroyCurrentWindow: true,
shouldRefreshVisibleOverlay: false,
createWindowTiming: 'none',
},
);
});
test('linux overlay mode sync replaces visible window when fullscreen mode changes', () => {
assert.deepEqual(
resolveLinuxVisibleOverlayWindowModeAction({
currentMode: 'managed',
fullscreen: true,
hasLiveWindow: true,
visibleOverlayVisible: true,
}),
{
nextMode: 'fullscreen-override',
shouldCreateWindow: true,
shouldDestroyCurrentWindow: true,
shouldRefreshVisibleOverlay: true,
createWindowTiming: 'after-current-destroyed',
},
);
});
test('linux overlay mode sync creates correct visible window when none exists', () => {
assert.deepEqual(
resolveLinuxVisibleOverlayWindowModeAction({
currentMode: 'fullscreen-override',
fullscreen: true,
hasLiveWindow: false,
visibleOverlayVisible: true,
}),
{
nextMode: 'fullscreen-override',
shouldCreateWindow: true,
shouldDestroyCurrentWindow: false,
shouldRefreshVisibleOverlay: true,
createWindowTiming: 'now',
},
);
});
test('linux overlay mode sync no-ops when live window already matches mode', () => {
assert.deepEqual(
resolveLinuxVisibleOverlayWindowModeAction({
currentMode: 'fullscreen-override',
fullscreen: true,
hasLiveWindow: true,
visibleOverlayVisible: true,
}),
{
nextMode: 'fullscreen-override',
shouldCreateWindow: false,
shouldDestroyCurrentWindow: false,
shouldRefreshVisibleOverlay: false,
createWindowTiming: 'none',
},
);
});
test('linux overlay mode exits fullscreen override when tracked geometry is windowed', () => {
assert.equal(
shouldExitFullscreenOverrideForTrackedGeometry({
currentMode: 'fullscreen-override',
trackedFullscreen: true,
geometry: { x: 420, y: 90, width: 1280, height: 720 },
displayBounds: { x: 0, y: 0, width: 2560, height: 1440 },
}),
true,
);
});