feat(EmailService): 添加邮件附件功能并更新单元测试

- 在 EmailService 类的 sendHtml 方法中添加了附件处理逻辑
- 更新了 EmailServiceTest 单元测试,增加了附件发送的测试用例
- 优化了测试用例的结构,提高了可读性和可维护性
This commit is contained in:
李东云
2025-03-03 09:57:04 +00:00
parent aaa4382ff2
commit 225bdedd23
2 changed files with 71 additions and 10 deletions

View File

@@ -1,4 +1,5 @@
<?php
/**
* EmailServiceTest.php@HDK-Core
*
@@ -9,15 +10,19 @@
namespace Singularity\HDK\Test\Core\Service;
use PharIo\Manifest\Email;
use Singularity\HDK\Core\Service\EmailService;
use Symfony\Component\Mailer\Exception\TransportException;
$dsn = 'smtp://account@luxcreo.ai:Qfsd8866@smtp.qiye.aliyun.com:465';
$mail_sender_name = 'LuxCreo';
$mail_sender = 'account@luxcreo.ai';
$email = new EmailService($dsn, $mail_sender_name, $mail_sender);
use function Hyperf\Support\make;
it('assertions that send HTML is available', function () use ($email) {
it('assertions that send HTML is available', function () {
$dsn = 'smtp://account@luxcreo.ai:Qfsd8866@smtp.qiye.aliyun.com:465';
$mail_sender_name = 'LuxCreo';
$mail_sender = 'account@luxcreo.ai';
// $email = new EmailService($dsn, $mail_sender_name, $mail_sender);
$email = make(EmailService::class, ['dsn' => $dsn, 'mailSenderName' => $mail_sender_name, 'mailSender' => $mail_sender]);
$result = $email->sendHtml(
'dongyun.li@luxcreo.ai',
'HDK Unit Test HTML',
@@ -26,9 +31,15 @@ it('assertions that send HTML is available', function () use ($email) {
HTML
);
expect($result)->toBeTrue();
})->skip();
});
it('assertions that send Text is available', function () {
$dsn = 'smtp://account@luxcreo.ai:Qfsd8866@smtp.qiye.aliyun.com:465';
$mail_sender_name = 'LuxCreo';
$mail_sender = 'account@luxcreo.ai';
// $email = new EmailService($dsn, $mail_sender_name, $mail_sender);
$email = make(EmailService::class, ['dsn' => $dsn, 'mailSenderName' => $mail_sender_name, 'mailSender' => $mail_sender]);
it('assertions that send Text is available', function () use ($email) {
$result = $email->sendText(
'dongyun.li@luxcreo.ai',
'HDK Unit Test Text',
@@ -37,9 +48,15 @@ it('assertions that send Text is available', function () use ($email) {
Text
);
expect($result)->toBeTrue();
})->skip();
});
it('assertions Error Receiver can be catch', function () {
$dsn = 'smtp://account@luxcreo.ai:Qfsd8866@smtp.qiye.aliyun.com:465';
$mail_sender_name = 'LuxCreo';
$mail_sender = 'account@luxcreo.ai';
// $email = new EmailService($dsn, $mail_sender_name, $mail_sender);
$email = make(EmailService::class, ['dsn' => $dsn, 'mailSenderName' => $mail_sender_name, 'mailSender' => $mail_sender]);
it('assertions Error Receiver can be catch', function () use ($email) {
try {
$email->sendHtml(
'unknown@luxcreo.ai',
@@ -62,4 +79,30 @@ Text
} catch (TransportException $t) {
expect($t->getCode())->toBe(554);
}
})->skip('会报错必须运行在协程环境下');
});
it('should can contain attachment', function () {
$dsn = 'smtp://account@luxcreo.ai:Qfsd8866@smtp.qiye.aliyun.com:465';
$mail_sender_name = 'LuxCreo';
$mail_sender = 'account@luxcreo.ai';
// $email = new EmailService($dsn, $mail_sender_name, $mail_sender);
$email = make(EmailService::class, ['dsn' => $dsn, 'mailSenderName' => $mail_sender_name, 'mailSender' => $mail_sender]);
$email->sendHtml(
'dongyun.li@luxcreo.ai',
'HDK Unit Test HTML',
<<<HTML
<h1>Hello, World!</h1>
HTML,
[],
[],
[
[
'path' => __DIR__ . '/../../README.md',
'name' => 'README.md',
'mimeType' => 'text/markdown',
],
],
[]
);
})->only();