from lobby_widget import LobbyWidget def test_session_selection_uses_existing_join_flow(qtbot): lobby = LobbyWidget() qtbot.addWidget(lobby) assert lobby.listed_checkbox.isChecked() rooms = [{"code": "ABC123", "fileInfo": {"name": "movie.mkv"}, "users": ["Host"], "playing": True, "position": 75}] lobby.update_sessions(rooms) lobby.sessions_list.setCurrentRow(0) assert not lobby.session_join_btn.isEnabled() lobby.username_input.setText("Alex") assert lobby.session_join_btn.isEnabled() with qtbot.waitSignal(lobby.join_requested) as signal: lobby.join_selected_session() assert signal.args == ["Alex", "ABC123"] lobby.reset_ui() lobby.update_sessions(rooms) assert lobby.sessions_list.currentItem().data(256) == "ABC123" lobby.update_sessions([]) assert not lobby.session_join_btn.isEnabled() assert "No active sessions" in lobby.sessions_status.text()