From e2c27cfe997ce0f3cafc99dc2d940b636d363b76 Mon Sep 17 00:00:00 2001 From: Brian Krabach Date: Wed, 15 Apr 2026 22:37:37 -0700 Subject: [PATCH] fix: update test_app.mjs assertions for tile-options-btn and sidebar-delete removal --- muxplex/frontend/tests/test_app.mjs | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/muxplex/frontend/tests/test_app.mjs b/muxplex/frontend/tests/test_app.mjs index 2d1708e..c52747e 100644 --- a/muxplex/frontend/tests/test_app.mjs +++ b/muxplex/frontend/tests/test_app.mjs @@ -2397,18 +2397,19 @@ test('app.js source uses 500ms debounce for template input and references new_se assert.ok(source.includes('new_session_template'), 'must reference new_session_template setting key'); }); -test('buildTileHTML includes tile-delete button with data-session attribute', () => { +test('buildTileHTML includes tile-options-btn button with data-session attribute', () => { const session = { name: 'my-session', snapshot: '', bell: { unseen_count: 0, seen_at: null, last_fired_at: null } }; const html = app.buildTileHTML(session, 0, false); - assert.ok(html.includes('tile-delete'), 'buildTileHTML must include tile-delete button class'); - assert.ok(html.includes('data-session="my-session"'), 'tile-delete button must have data-session attribute'); + assert.ok(html.includes('tile-options-btn'), 'buildTileHTML must include tile-options-btn button class'); + assert.ok(html.includes('data-session="my-session"'), 'tile-options-btn button must have data-session attribute'); + assert.ok(html.includes('aria-label="Session options"'), 'tile-options-btn must have aria-label="Session options"'); + assert.ok(html.includes('aria-haspopup="true"'), 'tile-options-btn must have aria-haspopup="true"'); }); -test('buildSidebarHTML includes sidebar-delete button with data-session attribute', () => { +test('buildSidebarHTML does not include sidebar-delete button', () => { const session = { name: 'my-session', snapshot: '', bell: { unseen_count: 0, seen_at: null, last_fired_at: null } }; const html = app.buildSidebarHTML(session, null); - assert.ok(html.includes('sidebar-delete'), 'buildSidebarHTML must include sidebar-delete button class'); - assert.ok(html.includes('data-session="my-session"'), 'sidebar-delete button must have data-session attribute'); + assert.ok(!html.includes('sidebar-delete'), 'buildSidebarHTML must NOT include sidebar-delete button (it was removed)'); }); // --- api --- @@ -3821,7 +3822,6 @@ test('buildSidebarHTML has single-line header with name, badge, and delete butto const headerEnd = html.indexOf('', headerStart); const headerContent = html.substring(headerStart, headerEnd); assert.ok(headerContent.includes('device-badge'), 'device-badge must be inside sidebar-item-header'); - assert.ok(headerContent.includes('sidebar-delete'), 'sidebar-delete must be inside sidebar-item-header'); app._setServerSettings(null); }); @@ -4052,19 +4052,19 @@ test('killSession closes active session and returns to dashboard', () => { assert.ok(fnBody.includes('closeSession'), 'killSession must call closeSession when deleting the active session'); }); -test('sidebar click handler ignores clicks on delete button', () => { +test('sidebar click handler does not guard on sidebar-delete (button was removed)', () => { const source = fs.readFileSync(new URL('../app.js', import.meta.url), 'utf8'); assert.ok( - source.includes("closest('.sidebar-delete')"), - "sidebar click handler must guard against clicks on .sidebar-delete button" + !source.includes("closest('.sidebar-delete')"), + "sidebar click handler must NOT reference .sidebar-delete (button was removed)" ); }); -test('tile click handler ignores clicks on tile-delete button', () => { +test('tile click handler ignores clicks on tile-options-btn button', () => { const source = fs.readFileSync(new URL('../app.js', import.meta.url), 'utf8'); assert.ok( - source.includes("closest('.tile-delete')"), - "tile click handler must guard against clicks on .tile-delete button" + source.includes("closest('.tile-options-btn')"), + "tile click handler must guard against clicks on .tile-options-btn button" ); });