Fix plenary spotlight for guest speakers without user accounts.
Deploy Ladill Meet / deploy (push) Successful in 52s

Spotlight by participant uuid, add on-stage picker in stage layout, and show who is currently spotlighted in the plenary status bar.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
isaacclad
2026-07-03 22:22:07 +00:00
co-authored by Cursor
parent ee3f7410f4
commit 775c81f4ee
3 changed files with 156 additions and 33 deletions
+60
View File
@@ -1048,6 +1048,66 @@ class MeetWebTest extends TestCase
$this->assertCount(1, $room->setting('panels'));
}
public function test_host_can_spotlight_guest_panelist_by_participant_uuid(): void
{
$room = Room::create([
'owner_ref' => $this->user->public_id,
'organization_id' => $this->organization->id,
'host_user_ref' => $this->user->public_id,
'title' => 'Summit keynote',
'type' => 'webinar',
'status' => 'live',
'scheduled_at' => now()->addHour(),
'timezone' => 'UTC',
'settings' => array_merge(config('meet.default_settings'), [
'stage_layout' => 'plenary',
]),
]);
$session = Session::create([
'owner_ref' => $this->user->public_id,
'room_id' => $room->id,
'media_room_name' => 'meet-'.$room->uuid,
'status' => 'live',
'started_at' => now(),
]);
$hostParticipant = \App\Models\Participant::create([
'owner_ref' => $this->user->public_id,
'session_id' => $session->id,
'user_ref' => $this->user->public_id,
'display_name' => $this->user->name,
'role' => 'host',
'status' => 'joined',
'joined_at' => now(),
]);
$guestSpeaker = \App\Models\Participant::create([
'owner_ref' => $this->user->public_id,
'session_id' => $session->id,
'display_name' => 'Guest Speaker',
'email' => 'speaker@example.com',
'role' => 'panelist',
'status' => 'joined',
'joined_at' => now(),
]);
$this->actingAs($this->user)
->withSession(["meet.participant.{$session->uuid}" => $hostParticipant->uuid])
->postJson('/room/'.$session->uuid.'/stage', [
'stage_layout' => 'plenary',
'spotlight_speaker_ref' => $guestSpeaker->uuid,
])
->assertOk()
->assertJson([
'stage_layout' => 'plenary',
'spotlight_speaker_ref' => $guestSpeaker->uuid,
]);
$room->refresh();
$this->assertSame($guestSpeaker->uuid, $room->setting('spotlight_speaker_ref'));
}
public function test_poll_includes_stage_config_for_conference(): void
{
$room = Room::create([