mirror of
https://github.com/ksyasuda/SubMiner.git
synced 2026-07-27 16:49:51 -07:00
61 lines
1.6 KiB
TypeScript
61 lines
1.6 KiB
TypeScript
import test from 'node:test';
|
|
import assert from 'node:assert/strict';
|
|
import { findWindowsMpvTargetWindowHandle } from './windows-helper';
|
|
import type { MpvPollResult } from './win32';
|
|
|
|
test('findWindowsMpvTargetWindowHandle prefers the focused mpv window', () => {
|
|
const result: MpvPollResult = {
|
|
matches: [
|
|
{
|
|
hwnd: 111,
|
|
bounds: { x: 0, y: 0, width: 1280, height: 720 },
|
|
area: 1280 * 720,
|
|
isForeground: false,
|
|
},
|
|
{
|
|
hwnd: 222,
|
|
bounds: { x: 10, y: 10, width: 800, height: 600 },
|
|
area: 800 * 600,
|
|
isForeground: true,
|
|
},
|
|
],
|
|
focusState: true,
|
|
windowState: 'visible',
|
|
};
|
|
|
|
assert.equal(findWindowsMpvTargetWindowHandle(result), 222);
|
|
});
|
|
|
|
test('findWindowsMpvTargetWindowHandle falls back to the largest visible mpv window', () => {
|
|
const result: MpvPollResult = {
|
|
matches: [
|
|
{
|
|
hwnd: 111,
|
|
bounds: { x: 0, y: 0, width: 640, height: 360 },
|
|
area: 640 * 360,
|
|
isForeground: false,
|
|
},
|
|
{
|
|
hwnd: 222,
|
|
bounds: { x: 10, y: 10, width: 1920, height: 1080 },
|
|
area: 1920 * 1080,
|
|
isForeground: false,
|
|
},
|
|
],
|
|
focusState: false,
|
|
windowState: 'visible',
|
|
};
|
|
|
|
assert.equal(findWindowsMpvTargetWindowHandle(result), 222);
|
|
});
|
|
|
|
test('findWindowsMpvTargetWindowHandle returns null when no mpv windows are visible', () => {
|
|
const result: MpvPollResult = {
|
|
matches: [],
|
|
focusState: false,
|
|
windowState: 'not-found',
|
|
};
|
|
|
|
assert.equal(findWindowsMpvTargetWindowHandle(result), null);
|
|
});
|