create([ 'name' => '审核管理员', 'email' => 'audit@example.com' ]); $visitData = [ 'name' => '测试访客', 'date' => '2024-01-15', 'mobile' => '13800138000', 'reason' => '商务洽谈', ]; $notification = new AuditEmailNotify($visitData, true); $mailMessage = $notification->toMail($admin); // 验证第一个审核人的邮件内容 $this->assertStringContainsString('新的拜访审核通知', $mailMessage->subject); $this->assertStringContainsString('测试访客', $mailMessage->subject); $this->assertStringContainsString('您好 审核管理员', $mailMessage->greeting); $this->assertStringContainsString('您有一个新的拜访申请需要审核', $mailMessage->introLines[0]); $this->assertStringContainsString('测试访客', $mailMessage->introLines[0]); $this->assertStringContainsString('2024-01-15', $mailMessage->introLines[0]); $this->assertStringContainsString('13800138000', $mailMessage->introLines[1]); $this->assertStringContainsString('商务洽谈', $mailMessage->introLines[2]); $this->assertStringContainsString('立即审核', $mailMessage->actionText); $this->assertStringContainsString('请及时审核此拜访申请', $mailMessage->outroLines[0]); } /** @test */ public function test_next_audit_email_notification_content() { $admin = Admin::factory()->create([ 'name' => '二级审核管理员', 'email' => 'audit2@example.com' ]); $visitData = [ 'name' => '测试访客', 'date' => '2024-01-15', 'mobile' => '13800138000', 'reason' => '商务洽谈', 'previous_admin' => '一级审核管理员', ]; $notification = new AuditEmailNotify($visitData, false); $mailMessage = $notification->toMail($admin); // 验证后续审核人的邮件内容 $this->assertStringContainsString('拜访审核流转通知', $mailMessage->subject); $this->assertStringContainsString('测试访客', $mailMessage->subject); $this->assertStringContainsString('您好 二级审核管理员', $mailMessage->greeting); $this->assertStringContainsString('审核已流转到您这里', $mailMessage->introLines[0]); $this->assertStringContainsString('测试访客', $mailMessage->introLines[0]); $this->assertStringContainsString('2024-01-15', $mailMessage->introLines[0]); $this->assertStringContainsString('一级审核管理员', $mailMessage->introLines[0]); $this->assertStringContainsString('13800138000', $mailMessage->introLines[1]); $this->assertStringContainsString('商务洽谈', $mailMessage->introLines[2]); $this->assertStringContainsString('立即审核', $mailMessage->actionText); $this->assertStringContainsString('请及时处理此审核流转', $mailMessage->outroLines[0]); } /** @test */ public function test_audit_email_notification_without_reason() { $admin = Admin::factory()->create([ 'name' => '审核管理员', 'email' => 'audit@example.com' ]); $visitData = [ 'name' => '测试访客', 'date' => '2024-01-15', 'mobile' => '13800138000', 'reason' => null, ]; $notification = new AuditEmailNotify($visitData, true); $mailMessage = $notification->toMail($admin); // 验证邮件内容包含"无" $this->assertStringContainsString('无', $mailMessage->introLines[2]); } }