Add VIP presence themes and custom greetings

This commit is contained in:
2026-04-11 15:44:30 +08:00
parent 9fb7710079
commit 4eba9dfc12
21 changed files with 1126 additions and 49 deletions
@@ -174,6 +174,57 @@ class VipPaymentIntegrationTest extends TestCase
$response->assertSee('我的购买记录');
}
/**
* 测试允许自定义的会员可以在会员中心保存自己的欢迎语和离开语。
*/
public function test_vip_member_can_update_custom_presence_messages(): void
{
$vipLevel = VipLevel::factory()->create([
'allow_custom_messages' => true,
]);
$user = User::factory()->create([
'vip_level_id' => $vipLevel->id,
'hy_time' => now()->addDays(30),
]);
$response = $this->actingAs($user)->put(route('vip.center.presence.update'), [
'custom_join_message' => '{username} 乘着流光闪耀登场',
'custom_leave_message' => '{username} 留下一缕星辉悄然退场',
]);
$response->assertRedirect(route('vip.center'));
$this->assertDatabaseHas('users', [
'id' => $user->id,
'custom_join_message' => '{username} 乘着流光闪耀登场',
'custom_leave_message' => '{username} 留下一缕星辉悄然退场',
]);
}
/**
* 测试未开通该权限的用户不能保存自定义欢迎语和离开语。
*/
public function test_non_customizable_vip_member_cannot_update_custom_presence_messages(): void
{
$vipLevel = VipLevel::factory()->create([
'allow_custom_messages' => false,
]);
$user = User::factory()->create([
'vip_level_id' => $vipLevel->id,
'hy_time' => now()->addDays(30),
]);
$response = $this->actingAs($user)->put(route('vip.center.presence.update'), [
'custom_join_message' => '不应被保存',
'custom_leave_message' => '不应被保存',
]);
$response->assertRedirect(route('vip.center'));
$this->assertDatabaseMissing('users', [
'id' => $user->id,
'custom_join_message' => '不应被保存',
]);
}
/**
* 写入测试所需的支付中心配置
*/