You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
103 lines
4.1 KiB
103 lines
4.1 KiB
<?php
|
|
|
|
namespace Tests\Feature;
|
|
|
|
use App\Models\Admin;
|
|
use App\Models\Visit;
|
|
use App\Models\VisitAudit;
|
|
use App\Notifications\AuditEmailNotify;
|
|
use Illuminate\Foundation\Testing\RefreshDatabase;
|
|
use Illuminate\Support\Facades\Notification;
|
|
use Tests\TestCase;
|
|
|
|
class AuditEmailNotificationTest extends TestCase
|
|
{
|
|
use RefreshDatabase;
|
|
|
|
/** @test */
|
|
public function test_first_audit_email_notification_content()
|
|
{
|
|
$admin = Admin::factory()->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]);
|
|
}
|
|
}
|