langPackJaActive()) { $this->markTestSkipped('lang pack ja 미로드'); } config(['app.translatable_locales' => ['ko', 'en', 'ja']]); $svc = app(EcommerceSettingsService::class); $payment = $svc->getPublicPaymentSettings(); $card = collect($payment['payment_methods'] ?? [])->firstWhere('id', 'card'); $this->assertNotNull($card); $this->assertSame('クレジットカード', $card['_cached_name']['ja'] ?? null); $this->assertSame('신용카드', $card['_cached_name']['ko'] ?? null); $this->assertSame('Credit Card', $card['_cached_name']['en'] ?? null); } public function test_payment_methods_dbank_uses_id_based_lang_key(): void { if (! $this->langPackJaActive()) { $this->markTestSkipped('lang pack ja 미로드'); } config(['app.translatable_locales' => ['ko', 'en', 'ja']]); $svc = app(EcommerceSettingsService::class); $payment = $svc->getPublicPaymentSettings(); $dbank = collect($payment['payment_methods'] ?? [])->firstWhere('id', 'dbank'); $this->assertNotNull($dbank, '저장된 dbank 결제수단 누락'); // id 기반 lang key (sirsoft-ecommerce::settings.payment_methods.dbank.name) 사용 검증 $this->assertSame('銀行振込', $dbank['_cached_name']['ja'] ?? null); } public function test_currencies_carry_japanese_label_via_enrich_catalog_locales(): void { if (! $this->langPackJaActive()) { $this->markTestSkipped('lang pack ja 미로드'); } config(['app.translatable_locales' => ['ko', 'en', 'ja']]); $svc = app(EcommerceSettingsService::class); $settings = $svc->getAllSettings(); $krw = collect($settings['language_currency']['currencies'] ?? [])->firstWhere('code', 'KRW'); $this->assertNotNull($krw); $this->assertSame('KRW (ウォン)', $krw['name']['ja'] ?? null); } public function test_localize_catalog_field_helper_preserves_operator_edit(): void { config(['app.translatable_locales' => ['ko', 'en', 'ja']]); $field = ['ko' => '신용카드', 'en' => 'Credit Card', 'ja' => '운영자 수정']; $result = localize_catalog_field($field, 'sirsoft-ecommerce::settings.payment_methods.card.name'); // 운영자 ja 편집값 보존 (lang pack 으로 덮어쓰지 않음) $this->assertSame('운영자 수정', $result['ja']); } public function test_localize_catalog_field_helper_fills_missing_locale(): void { if (! $this->langPackJaActive()) { $this->markTestSkipped('lang pack ja 미로드'); } config(['app.translatable_locales' => ['ko', 'en', 'ja']]); $field = ['ko' => '신용카드', 'en' => 'Credit Card']; $result = localize_catalog_field($field, 'sirsoft-ecommerce::settings.payment_methods.card.name'); $this->assertSame('クレジットカード', $result['ja'] ?? null); $this->assertSame('신용카드', $result['ko']); } }