fix: status tiles show device name instead of blank — use deviceName not name
buildStatusTileHTML received session.name (undefined for status entries) instead of session.deviceName. Offline/unreachable tiles showed blank. Fixed all 4 call sites in renderGrid to pass session.deviceName. Updated two existing tests to use deviceName (not name) in status entry objects — reflecting the real federation data shape.
This commit is contained in:
@@ -760,8 +760,8 @@ function renderGrid(sessions) {
|
||||
// Build status tiles for auth_failed/unreachable sessions even when no regular sessions exist
|
||||
var statusTilesHtml = '';
|
||||
(sessions || []).forEach(function(session) {
|
||||
if (session.status === 'auth_failed') statusTilesHtml += buildStatusTileHTML(session.name, 'Auth required', 'auth');
|
||||
else if (session.status === 'unreachable') statusTilesHtml += buildStatusTileHTML(session.name, 'Offline', 'offline');
|
||||
if (session.status === 'auth_failed') statusTilesHtml += buildStatusTileHTML(session.deviceName, 'Auth required', 'auth');
|
||||
else if (session.status === 'unreachable') statusTilesHtml += buildStatusTileHTML(session.deviceName, 'Offline', 'offline');
|
||||
});
|
||||
if (grid) grid.innerHTML = statusTilesHtml;
|
||||
// Only show empty-state when there are truly no tiles at all
|
||||
@@ -803,8 +803,8 @@ function renderGrid(sessions) {
|
||||
// Append status tiles for auth_failed and unreachable sessions
|
||||
var statusTilesHtml = '';
|
||||
(sessions || []).forEach(function(session) {
|
||||
if (session.status === 'auth_failed') statusTilesHtml += buildStatusTileHTML(session.name, 'Auth required', 'auth');
|
||||
else if (session.status === 'unreachable') statusTilesHtml += buildStatusTileHTML(session.name, 'Offline', 'offline');
|
||||
if (session.status === 'auth_failed') statusTilesHtml += buildStatusTileHTML(session.deviceName, 'Auth required', 'auth');
|
||||
else if (session.status === 'unreachable') statusTilesHtml += buildStatusTileHTML(session.deviceName, 'Offline', 'offline');
|
||||
});
|
||||
if (grid) grid.innerHTML = html + statusTilesHtml;
|
||||
|
||||
|
||||
@@ -626,7 +626,7 @@ test('renderGrid includes auth tile HTML when a session has auth_failed status',
|
||||
|
||||
const sessions = [
|
||||
{ name: 'my-session', snapshot: 'hello' },
|
||||
{ name: 'Workstation', status: 'auth_failed' },
|
||||
{ deviceName: 'Workstation', status: 'auth_failed' },
|
||||
];
|
||||
app.renderGrid(sessions);
|
||||
|
||||
@@ -651,7 +651,7 @@ test('renderGrid includes offline tile HTML when a session has unreachable statu
|
||||
|
||||
const sessions = [
|
||||
{ name: 'my-session', snapshot: 'hello' },
|
||||
{ name: 'Dev Server', status: 'unreachable' },
|
||||
{ deviceName: 'Dev Server', status: 'unreachable' },
|
||||
];
|
||||
app.renderGrid(sessions);
|
||||
|
||||
@@ -4730,3 +4730,31 @@ test('updateFaviconBadge does not show activity for only-hidden sessions with be
|
||||
app._setServerSettings(null);
|
||||
app._setCurrentSessions([]);
|
||||
});
|
||||
|
||||
// --- renderGrid: status tiles use deviceName not name ---
|
||||
|
||||
test('renderGrid status tiles use session.deviceName not session.name for offline devices', () => {
|
||||
// Status entries (unreachable/auth_failed) have deviceName but no name.
|
||||
// buildStatusTileHTML must receive session.deviceName so the tile shows the device label.
|
||||
const grid = { innerHTML: '' };
|
||||
const emptyState = { style: {}, classList: { add() {}, remove() {} } };
|
||||
const origGetById = globalThis.document.getElementById;
|
||||
globalThis.document.getElementById = (id) => {
|
||||
if (id === 'session-grid') return grid;
|
||||
if (id === 'empty-state') return emptyState;
|
||||
return null;
|
||||
};
|
||||
|
||||
// An unreachable device: has deviceName but no name (as federation returns it)
|
||||
app.renderGrid([{ status: 'unreachable', deviceName: 'my-server', remoteId: 1 }]);
|
||||
|
||||
assert.ok(grid.innerHTML.includes('my-server'),
|
||||
'offline status tile HTML must include the deviceName "my-server"');
|
||||
|
||||
// Also verify an auth_failed device shows its deviceName
|
||||
app.renderGrid([{ status: 'auth_failed', deviceName: 'auth-box', remoteId: 2 }]);
|
||||
assert.ok(grid.innerHTML.includes('auth-box'),
|
||||
'auth_failed status tile HTML must include the deviceName "auth-box"');
|
||||
|
||||
globalThis.document.getElementById = origGetById;
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user