新增聊天室状态与功能快捷菜单
This commit is contained in:
@@ -149,6 +149,38 @@ class ChatControllerTest extends TestCase
|
||||
$this->assertSame($position?->department?->name, $authorizedPayload['department_name'] ?? null);
|
||||
}
|
||||
|
||||
/**
|
||||
* 测试聊天室 Presence 频道会返回仍在有效期内的当日状态载荷。
|
||||
*/
|
||||
public function test_room_presence_channel_returns_active_daily_status_payload(): void
|
||||
{
|
||||
$room = Room::create([
|
||||
'room_name' => 'dsbadge',
|
||||
'door_open' => true,
|
||||
]);
|
||||
$user = User::factory()->create([
|
||||
'daily_status_key' => 'working_hard',
|
||||
'daily_status_expires_at' => now()->addHours(3),
|
||||
]);
|
||||
$channelCallback = Broadcast::driver()->getChannels()->get('room.{roomId}');
|
||||
|
||||
$this->assertIsCallable($channelCallback);
|
||||
|
||||
$this->actingAs($user)->get(route('chat.room', $room->id));
|
||||
|
||||
$authorizedPayload = $channelCallback($user, (string) $room->id);
|
||||
|
||||
$this->assertIsArray($authorizedPayload);
|
||||
$this->assertSame('working_hard', $authorizedPayload['daily_status_key'] ?? null);
|
||||
$this->assertSame('搬砖', $authorizedPayload['daily_status_label'] ?? null);
|
||||
$this->assertSame('🧱', $authorizedPayload['daily_status_icon'] ?? null);
|
||||
$this->assertSame('工作学习', $authorizedPayload['daily_status_group'] ?? null);
|
||||
$this->assertSame(
|
||||
$user->fresh()->daily_status_expires_at?->toIso8601String(),
|
||||
$authorizedPayload['daily_status_expires_at'] ?? null
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* 测试主干默认聊天室页面不会渲染虚拟形象挂载点和配置。
|
||||
*/
|
||||
@@ -186,6 +218,32 @@ class ChatControllerTest extends TestCase
|
||||
$response->assertSee('toggleBlockedSystemSender');
|
||||
}
|
||||
|
||||
/**
|
||||
* 测试聊天室输入区会渲染状态入口,并移除旧的直接清屏按钮绑定。
|
||||
*/
|
||||
public function test_room_view_renders_daily_status_button_and_hides_direct_local_clear_button(): void
|
||||
{
|
||||
$room = Room::create(['room_name' => 'statusmenu']);
|
||||
$user = User::factory()->create();
|
||||
|
||||
$response = $this->actingAs($user)->get(route('chat.room', $room->id));
|
||||
|
||||
$response->assertOk();
|
||||
$response->assertSee('toggleFeatureMenu(event)', false);
|
||||
$response->assertSee('功能');
|
||||
$response->assertSee('设个状态', false);
|
||||
$response->assertSee('runFeatureShortcut(\'shop\')', false);
|
||||
$response->assertSee('runFeatureShortcut(\'vip\')', false);
|
||||
$response->assertSee('runFeatureShortcut(\'game\')', false);
|
||||
$response->assertSee('runFeatureShortcut(\'avatar\')', false);
|
||||
$response->assertSee('runFeatureShortcut(\'bank\')', false);
|
||||
$response->assertSee('runFeatureShortcut(\'marriage\')', false);
|
||||
$response->assertSee('runFeatureShortcut(\'friend\')', false);
|
||||
$response->assertSee('runFeatureShortcut(\'settings\')', false);
|
||||
$response->assertSee('本地清屏', false);
|
||||
$response->assertDontSee('onclick="localClearScreen()"', false);
|
||||
}
|
||||
|
||||
/**
|
||||
* 测试无聊天室权限的职务用户看不到顶部管理按钮。
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user