import test from 'node:test'; import assert from 'node:assert/strict'; import { DEFAULT_MENU_AUTO_HIDE_DELAY_MS, PLAYING_VIDEO_MENU_AUTO_HIDE_DELAY_MS, getVideoAwareAutoHideDelayMs, isVideoActivelyPlaying } from '../vr180player/utils/control-panel-timing.js'; test('isVideoActivelyPlaying only returns true for non-paused, non-ended video state', () => { assert.equal(isVideoActivelyPlaying({ paused: false, ended: false }), true); assert.equal(isVideoActivelyPlaying({ paused: true, ended: false }), false); assert.equal(isVideoActivelyPlaying({ paused: false, ended: true }), false); assert.equal(isVideoActivelyPlaying(undefined), false); }); test('getVideoAwareAutoHideDelayMs uses the shorter delay while video is playing', () => { assert.equal( getVideoAwareAutoHideDelayMs({ paused: false, ended: false }), PLAYING_VIDEO_MENU_AUTO_HIDE_DELAY_MS ); assert.equal( getVideoAwareAutoHideDelayMs({ paused: true, ended: false }), DEFAULT_MENU_AUTO_HIDE_DELAY_MS ); }); test('getVideoAwareAutoHideDelayMs accepts custom delay values for other control surfaces', () => { assert.equal( getVideoAwareAutoHideDelayMs( { paused: false, ended: false }, { idleDelayMs: 3000, playingDelayMs: 1500 } ), 1500 ); assert.equal( getVideoAwareAutoHideDelayMs( { paused: true, ended: false }, { idleDelayMs: 3000, playingDelayMs: 1500 } ), 3000 ); });