mirror of
https://github.com/ksyasuda/SubMiner.git
synced 2026-03-21 12:11:28 -07:00
Overlay 2.0 (#12)
This commit is contained in:
@@ -1,58 +1,30 @@
|
||||
import assert from 'node:assert/strict';
|
||||
import test from 'node:test';
|
||||
import {
|
||||
createBuildSetInvisibleOverlayVisibleMainDepsHandler,
|
||||
createBuildSetVisibleOverlayVisibleMainDepsHandler,
|
||||
createBuildToggleInvisibleOverlayMainDepsHandler,
|
||||
createBuildToggleVisibleOverlayMainDepsHandler,
|
||||
} from './overlay-visibility-actions-main-deps';
|
||||
|
||||
test('overlay visibility action main deps builders map callbacks', () => {
|
||||
const calls: string[] = [];
|
||||
let warmupStarts = 0;
|
||||
|
||||
const setVisible = createBuildSetVisibleOverlayVisibleMainDepsHandler({
|
||||
setVisibleOverlayVisibleCore: () => calls.push('visible-core'),
|
||||
setVisibleOverlayVisibleState: (visible) => calls.push(`visible-state:${visible}`),
|
||||
updateVisibleOverlayVisibility: () => calls.push('update-visible'),
|
||||
updateInvisibleOverlayVisibility: () => calls.push('update-invisible'),
|
||||
syncInvisibleOverlayMousePassthrough: () => calls.push('sync'),
|
||||
shouldBindVisibleOverlayToMpvSubVisibility: () => true,
|
||||
isMpvConnected: () => true,
|
||||
setMpvSubVisibility: (visible) => calls.push(`mpv:${visible}`),
|
||||
onVisibleOverlayEnabled: () => {
|
||||
warmupStarts += 1;
|
||||
},
|
||||
})();
|
||||
setVisible.setVisibleOverlayVisibleCore({
|
||||
visible: true,
|
||||
setVisibleOverlayVisibleState: () => {},
|
||||
updateVisibleOverlayVisibility: () => {},
|
||||
updateInvisibleOverlayVisibility: () => {},
|
||||
syncInvisibleOverlayMousePassthrough: () => {},
|
||||
shouldBindVisibleOverlayToMpvSubVisibility: () => true,
|
||||
isMpvConnected: () => true,
|
||||
setMpvSubVisibility: () => {},
|
||||
});
|
||||
setVisible.setVisibleOverlayVisibleState(true);
|
||||
setVisible.updateVisibleOverlayVisibility();
|
||||
setVisible.updateInvisibleOverlayVisibility();
|
||||
setVisible.syncInvisibleOverlayMousePassthrough();
|
||||
assert.equal(setVisible.shouldBindVisibleOverlayToMpvSubVisibility(), true);
|
||||
assert.equal(setVisible.isMpvConnected(), true);
|
||||
setVisible.setMpvSubVisibility(false);
|
||||
|
||||
const setInvisible = createBuildSetInvisibleOverlayVisibleMainDepsHandler({
|
||||
setInvisibleOverlayVisibleCore: () => calls.push('invisible-core'),
|
||||
setInvisibleOverlayVisibleState: (visible) => calls.push(`invisible-state:${visible}`),
|
||||
updateInvisibleOverlayVisibility: () => calls.push('update-only-invisible'),
|
||||
syncInvisibleOverlayMousePassthrough: () => calls.push('sync-only'),
|
||||
})();
|
||||
setInvisible.setInvisibleOverlayVisibleCore({
|
||||
visible: false,
|
||||
setInvisibleOverlayVisibleState: () => {},
|
||||
updateInvisibleOverlayVisibility: () => {},
|
||||
syncInvisibleOverlayMousePassthrough: () => {},
|
||||
});
|
||||
setInvisible.setInvisibleOverlayVisibleState(false);
|
||||
setInvisible.updateInvisibleOverlayVisibility();
|
||||
setInvisible.syncInvisibleOverlayMousePassthrough();
|
||||
setVisible.onVisibleOverlayEnabled?.();
|
||||
|
||||
const toggleVisible = createBuildToggleVisibleOverlayMainDepsHandler({
|
||||
getVisibleOverlayVisible: () => false,
|
||||
@@ -61,25 +33,11 @@ test('overlay visibility action main deps builders map callbacks', () => {
|
||||
assert.equal(toggleVisible.getVisibleOverlayVisible(), false);
|
||||
toggleVisible.setVisibleOverlayVisible(true);
|
||||
|
||||
const toggleInvisible = createBuildToggleInvisibleOverlayMainDepsHandler({
|
||||
getInvisibleOverlayVisible: () => true,
|
||||
setInvisibleOverlayVisible: (visible) => calls.push(`toggle-invisible:${visible}`),
|
||||
})();
|
||||
assert.equal(toggleInvisible.getInvisibleOverlayVisible(), true);
|
||||
toggleInvisible.setInvisibleOverlayVisible(false);
|
||||
|
||||
assert.deepEqual(calls, [
|
||||
'visible-core',
|
||||
'visible-state:true',
|
||||
'update-visible',
|
||||
'update-invisible',
|
||||
'sync',
|
||||
'mpv:false',
|
||||
'invisible-core',
|
||||
'invisible-state:false',
|
||||
'update-only-invisible',
|
||||
'sync-only',
|
||||
'toggle-visible:true',
|
||||
'toggle-invisible:false',
|
||||
]);
|
||||
assert.equal(warmupStarts, 1);
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user