feat: add federation state globals and test-only helpers to app.js

Add new module-level globals:
- let _gridViewMode = 'flat'
- let _activeFilterDevice = 'all'

Add test-only helper functions:
- _setSources(sources): sets internal _sources array
- _setServerSettings(settings): sets internal _serverSettings
- _getGridViewMode(): returns current _gridViewMode value
- _getSources(): returns current _sources array

All 4 helpers exported in module.exports.

Tests added (all passing, 143/143):
- '_setSources sets internal _sources array'
- '_setServerSettings sets internal _serverSettings'
- '_getGridViewMode returns current _gridViewMode value'
- '_getSources returns current _sources array'

Task: task-3 (federation state helpers)
This commit is contained in:
Brian Krabach
2026-03-30 22:29:30 -07:00
parent ecf57441cf
commit 844311b475
2 changed files with 40 additions and 0 deletions
+18
View File
@@ -134,6 +134,8 @@ var _previewSessionName = null; // track by NAME, not DOM element
let _sources = []; let _sources = [];
let _settingsOpen = false; let _settingsOpen = false;
let _serverSettings = null; let _serverSettings = null;
let _gridViewMode = 'flat';
let _activeFilterDevice = 'all';
const DISPLAY_SETTINGS_KEY = 'muxplex.display'; const DISPLAY_SETTINGS_KEY = 'muxplex.display';
const DISPLAY_DEFAULTS = { const DISPLAY_DEFAULTS = {
fontSize: 14, fontSize: 14,
@@ -1671,6 +1673,18 @@ function _setViewMode(mode) {
_viewMode = mode; _viewMode = mode;
} }
/** Test-only: set _sources directly. */
function _setSources(sources) { _sources = sources; }
/** Test-only: set _serverSettings directly. */
function _setServerSettings(settings) { _serverSettings = settings; }
/** Test-only: get _gridViewMode. */
function _getGridViewMode() { return _gridViewMode; }
/** Test-only: get _sources. */
function _getSources() { return _sources; }
document.addEventListener('DOMContentLoaded', () => { document.addEventListener('DOMContentLoaded', () => {
initDeviceId(); initDeviceId();
applyDisplaySettings(loadDisplaySettings()); applyDisplaySettings(loadDisplaySettings());
@@ -1759,5 +1773,9 @@ if (typeof module !== 'undefined' && module.exports) {
// Test-only helpers // Test-only helpers
_setCurrentSessions, _setCurrentSessions,
_setViewMode, _setViewMode,
_setSources,
_setServerSettings,
_getGridViewMode,
_getSources,
}; };
} }
+22
View File
@@ -2004,6 +2004,28 @@ test('createNewSession polls for session before auto-opening (not immediate setT
); );
}); });
// --- federation state helpers (task-3) ---
test('_setSources sets internal _sources array', () => {
assert.doesNotThrow(() => app._setSources([{ url: '', name: 'test' }]));
});
test('_setServerSettings sets internal _serverSettings', () => {
assert.doesNotThrow(() => app._setServerSettings({ sort_order: 'recent' }));
});
test('_getGridViewMode returns current _gridViewMode value', () => {
assert.strictEqual(typeof app._getGridViewMode(), 'string', '_getGridViewMode should return a string');
assert.strictEqual(app._getGridViewMode(), 'flat', '_gridViewMode should default to flat');
});
test('_getSources returns current _sources array', () => {
app._setSources([{ url: 'http://test', name: 'Test' }]);
const sources = app._getSources();
assert.ok(Array.isArray(sources), '_getSources should return an array');
assert.strictEqual(sources[0].url, 'http://test', '_getSources should return value set by _setSources');
});
// --- buildSources --- // --- buildSources ---
test('buildSources returns only local source when no remote_instances', () => { test('buildSources returns only local source when no remote_instances', () => {