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.
76 lines
3.2 KiB
76 lines
3.2 KiB
|
11 months ago
|
<?php
|
||
|
|
|
||
|
|
namespace Tests\Feature;
|
||
|
|
|
||
|
|
use App\Models\User;
|
||
|
|
use App\Notifications\AuditResultEmailNotify;
|
||
|
|
use Illuminate\Foundation\Testing\RefreshDatabase;
|
||
|
|
use Tests\TestCase;
|
||
|
|
|
||
|
|
class AuditResultEmailNotificationTest extends TestCase
|
||
|
|
{
|
||
|
|
use RefreshDatabase;
|
||
|
|
|
||
|
|
/** @test */
|
||
|
|
public function test_audit_approved_email_notification_content()
|
||
|
|
{
|
||
|
|
$user = User::factory()->create([
|
||
|
|
'name' => '测试访客',
|
||
|
|
'email' => 'visitor@example.com'
|
||
|
|
]);
|
||
|
|
|
||
|
|
$visitData = [
|
||
|
|
'name' => '测试访客',
|
||
|
|
'visitor_name' => '测试访客',
|
||
|
|
'date' => '2024-01-15',
|
||
|
|
'accept_admin_name' => '被访管理员',
|
||
|
|
'company_name' => '测试公司',
|
||
|
|
];
|
||
|
|
|
||
|
|
$notification = new AuditResultEmailNotify($visitData, '通过');
|
||
|
|
$mailMessage = $notification->toMail($user);
|
||
|
|
|
||
|
|
// 验证审核通过的邮件内容
|
||
|
|
$this->assertStringContainsString('拜访申请审核通过通知', $mailMessage->subject);
|
||
|
|
$this->assertStringContainsString('测试访客', $mailMessage->subject);
|
||
|
|
$this->assertStringContainsString('您好 测试访客', $mailMessage->greeting);
|
||
|
|
$this->assertStringContainsString('您的拜访申请已审核通过', $mailMessage->introLines[0]);
|
||
|
|
$this->assertStringContainsString('2024-01-15', $mailMessage->introLines[0]);
|
||
|
|
$this->assertStringContainsString('被访管理员', $mailMessage->introLines[1]);
|
||
|
|
$this->assertStringContainsString('测试公司', $mailMessage->introLines[2]);
|
||
|
|
$this->assertStringContainsString('请按时到访', $mailMessage->introLines[3]);
|
||
|
|
$this->assertStringContainsString('查看详情', $mailMessage->actionText);
|
||
|
|
}
|
||
|
|
|
||
|
|
/** @test */
|
||
|
|
public function test_audit_rejected_email_notification_content()
|
||
|
|
{
|
||
|
|
$user = User::factory()->create([
|
||
|
|
'name' => '测试访客',
|
||
|
|
'email' => 'visitor@example.com'
|
||
|
|
]);
|
||
|
|
|
||
|
|
$visitData = [
|
||
|
|
'name' => '测试访客',
|
||
|
|
'visitor_name' => '测试访客',
|
||
|
|
'date' => '2024-01-15',
|
||
|
|
'accept_admin_name' => '被访管理员',
|
||
|
|
'company_name' => '测试公司',
|
||
|
|
];
|
||
|
|
|
||
|
|
$notification = new AuditResultEmailNotify($visitData, '驳回');
|
||
|
|
$mailMessage = $notification->toMail($user);
|
||
|
|
|
||
|
|
// 验证审核驳回的邮件内容
|
||
|
|
$this->assertStringContainsString('拜访申请审核驳回通知', $mailMessage->subject);
|
||
|
|
$this->assertStringContainsString('测试访客', $mailMessage->subject);
|
||
|
|
$this->assertStringContainsString('您好 测试访客', $mailMessage->greeting);
|
||
|
|
$this->assertStringContainsString('很抱歉,您的拜访申请未通过审核', $mailMessage->introLines[0]);
|
||
|
|
$this->assertStringContainsString('2024-01-15', $mailMessage->introLines[1]);
|
||
|
|
$this->assertStringContainsString('被访管理员', $mailMessage->introLines[2]);
|
||
|
|
$this->assertStringContainsString('测试公司', $mailMessage->introLines[3]);
|
||
|
|
$this->assertStringContainsString('如有疑问,请联系被访人或重新提交申请', $mailMessage->introLines[4]);
|
||
|
|
$this->assertStringContainsString('重新申请', $mailMessage->actionText);
|
||
|
|
}
|
||
|
|
}
|