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.
99 lines
3.3 KiB
99 lines
3.3 KiB
<?php
|
|
|
|
namespace Tests\Feature;
|
|
|
|
use App\Models\Admin;
|
|
use App\Models\User;
|
|
use App\Models\Visit;
|
|
use App\Models\VisitAudit;
|
|
use App\Notifications\VisitEmailNotify;
|
|
use App\Notifications\AuditEmailNotify;
|
|
use Illuminate\Foundation\Testing\RefreshDatabase;
|
|
use Tests\TestCase;
|
|
|
|
class CompleteEmailFlowTest extends TestCase
|
|
{
|
|
use RefreshDatabase;
|
|
|
|
/** @test */
|
|
public function test_complete_visit_email_flow()
|
|
{
|
|
// 创建被访管理员
|
|
$acceptAdmin = Admin::factory()->create([
|
|
'name' => '被访管理员',
|
|
'email' => '648753004@qq.com',
|
|
]);
|
|
|
|
// 创建审核管理员
|
|
$auditAdmin = Admin::factory()->create([
|
|
'name' => '审核管理员',
|
|
'email' => '648753004@qq.com', // 同一个邮箱用于测试
|
|
]);
|
|
|
|
// 创建访客
|
|
$visitor = User::factory()->create([
|
|
'nickname' => '测试访客',
|
|
'mobile' => '13800138000',
|
|
'email' => 'visitor@example.com',
|
|
]);
|
|
|
|
echo "\n🚀 开始测试完整的邮件流程...\n";
|
|
|
|
// 1. 测试预约拜访邮件通知
|
|
echo "\n📧 步骤1: 发送预约拜访邮件通知\n";
|
|
$visitData = [
|
|
'name' => '测试访客',
|
|
'date' => '2024-01-15',
|
|
'mobile' => '13800138000',
|
|
'reason' => '业务洽谈',
|
|
];
|
|
|
|
try {
|
|
$acceptAdmin->notify(new VisitEmailNotify($visitData));
|
|
echo " ✅ 预约拜访邮件发送成功\n";
|
|
} catch (\Exception $e) {
|
|
echo " ❌ 预约拜访邮件发送失败: " . $e->getMessage() . "\n";
|
|
}
|
|
|
|
// 2. 测试审核邮件通知(第一个审核人)
|
|
echo "\n📧 步骤2: 发送审核邮件通知(第一个审核人)\n";
|
|
$auditData = [
|
|
'name' => '测试访客',
|
|
'date' => '2024-01-15',
|
|
'mobile' => '13800138000',
|
|
'reason' => '业务洽谈',
|
|
];
|
|
|
|
try {
|
|
$auditAdmin->notify(new AuditEmailNotify($auditData, true)); // true表示第一个审核人
|
|
echo " ✅ 第一个审核人邮件发送成功\n";
|
|
} catch (\Exception $e) {
|
|
echo " ❌ 第一个审核人邮件发送失败: " . $e->getMessage() . "\n";
|
|
}
|
|
|
|
// 3. 测试审核邮件通知(后续审核人)
|
|
echo "\n📧 步骤3: 发送审核邮件通知(后续审核人)\n";
|
|
$auditDataWithPrevious = [
|
|
'name' => '测试访客',
|
|
'date' => '2024-01-15',
|
|
'mobile' => '13800138000',
|
|
'reason' => '业务洽谈',
|
|
'previous_admin' => '被访管理员',
|
|
];
|
|
|
|
try {
|
|
$auditAdmin->notify(new AuditEmailNotify($auditDataWithPrevious, false)); // false表示后续审核人
|
|
echo " ✅ 后续审核人邮件发送成功\n";
|
|
} catch (\Exception $e) {
|
|
echo " ❌ 后续审核人邮件发送失败: " . $e->getMessage() . "\n";
|
|
}
|
|
|
|
echo "\n📊 邮件发送总结:\n";
|
|
echo " 📧 目标邮箱: 648753004@qq.com\n";
|
|
echo " 📝 邮件类型: 预约通知 + 审核通知\n";
|
|
echo " ✅ 所有邮件发送完成\n";
|
|
|
|
$this->assertTrue(true, '完整邮件流程测试完成');
|
|
}
|
|
}
|