Files
BetterDesk/web-nodejs/tests/remoteViewerPrefs.test.js
T
UNITRONIX a8f32a845f feat: enhance multi-session viewer functionality
- Added session management features to synchronize media capture and input handling across active tabs.
- Updated audio handling to respect session activity and mute states.
- Improved clipboard functionality to only allow copying to local clipboard from the active session.
- Refactored input capture logic to ensure it only activates for the active viewer tab.
- Introduced a new `syncSessionMediaCapture` function to manage media input across sessions.
2026-06-14 10:09:59 +02:00

38 lines
1.2 KiB
JavaScript

'use strict';
const {
BACKGROUND_FPS,
sanitizePrefs,
getActiveFpsForQuality,
getPresetForQuality,
loadRemoteViewerPrefs,
saveRemoteViewerPrefs,
} = require('../lib/remoteViewerPrefs');
describe('remoteViewerPrefs', () => {
it('defaults Best quality to 60fps preset', () => {
expect(getPresetForQuality('Best')).toBe('best');
expect(getActiveFpsForQuality('Best')).toBe(60);
});
it('sanitizes unknown values', () => {
const clean = sanitizePrefs({ quality: 'Invalid', scale: 'fit', codec: 'Auto' });
expect(clean.quality).toBe('Best');
expect(clean.scale).toBe('fit');
expect(clean.backgroundFps).toBe(BACKGROUND_FPS);
});
it('persists via in-memory storage', () => {
const storage = new Map();
const store = {
getItem: (k) => storage.get(k) || null,
setItem: (k, v) => storage.set(k, v),
};
saveRemoteViewerPrefs(7, { quality: 'Balanced', scale: '1:1' }, store);
const loaded = loadRemoteViewerPrefs(7, store);
expect(loaded.quality).toBe('Balanced');
expect(loaded.scale).toBe('1:1');
expect(getActiveFpsForQuality(loaded.quality)).toBe(30);
});
});