star-cloud/tests/Unit/OrderPickupRecipientMaskTest.php
sky121113 e01e8077f9 [FEAT] 新增訂單收件人姓名遮罩與商品詞彙通用化調整
1. 於 Order Model 新增收件人姓名遮罩邏輯 (masked_pickup_recipient),將 member_barcode 進行去識別化處理以保護隱私,並保留括號/換行等後綴資訊。
2. 新增 OrderPickupRecipientMaskTest 單元測試,驗證中文字元及包含換行/括號的後綴遮罩正確性。
3. 更新後台銷售管理介面 (order-detail-panel.blade.php、tab-orders.blade.php),將原先顯示明文的 member_barcode 改用遮罩後的屬性展示。
4. 將機器通訊協定與狀態代碼中的「便當 (Bento)」字詞統一調整為「商品 (Product)」,以符合各機型通用語意。
5. 更新相關語系翻譯檔案 (zh_TW.json, en.json, ja.json) 及 MQTT 通訊規範文件中的詞彙對應。
6. 修改 MachineLog 中的翻譯取得邏輯,確保能透過錯誤代碼表對應到最新的商品語意。
2026-05-29 14:37:28 +08:00

23 lines
752 B
PHP

<?php
namespace Tests\Unit;
use App\Models\Transaction\Order;
use PHPUnit\Framework\TestCase;
class OrderPickupRecipientMaskTest extends TestCase
{
public function test_it_masks_pickup_recipient_names(): void
{
$this->assertSame('鄭O', Order::maskPickupRecipientName('鄭英'));
$this->assertSame('鄭O英', Order::maskPickupRecipientName('鄭小英'));
$this->assertSame('鄭OO英', Order::maskPickupRecipientName('鄭曉小英'));
}
public function test_it_keeps_pickup_recipient_suffix(): void
{
$this->assertSame('黃O美 (2593)', Order::maskPickupRecipientName('黃麗美 (2593)'));
$this->assertSame("黃O美\n(2593)", Order::maskPickupRecipientName("黃麗美\n(2593)"));
}
}