Files
shopit-back/tests/Feature/Localization/ApiLocalizationTest.php
ncoronel ff9d7728e8 Implement localization for API responses and error messages
- Added localization support for API responses in English and Spanish.
- Introduced a middleware to set the API locale based on the Accept-Language header.
- Updated various exception messages and validation responses to use localized strings.
- Created new language files for English and Spanish translations.
- Refactored existing code to replace hardcoded messages with localized strings.
- Added tests to verify localization functionality and response correctness.
2026-07-28 10:19:39 -03:00

41 lines
1.4 KiB
PHP

<?php
namespace Tests\Feature\Localization;
use Tests\TestCase;
class ApiLocalizationTest extends TestCase
{
public function test_it_negotiates_spanish_from_accept_language(): void
{
$this->withHeader('Accept-Language', 'es-AR,es;q=0.9')
->postJson('/api/login')
->assertUnprocessable()
->assertHeader('Content-Language', 'es')
->assertJsonPath('errors.email.0', 'El campo email es obligatorio.')
->assertJsonPath('errors.password.0', 'El campo contraseña es obligatorio.');
}
public function test_it_negotiates_english_from_accept_language(): void
{
$this->withHeader('Accept-Language', 'en-US,en;q=0.9')
->postJson('/api/login')
->assertUnprocessable()
->assertHeader('Content-Language', 'en')
->assertJsonPath('errors.email.0', 'The email field is required.')
->assertJsonPath('errors.password.0', 'The password field is required.');
}
public function test_it_localizes_framework_error_responses(): void
{
$this->withHeader('Accept-Language', 'en')
->getJson('/api/route-that-does-not-exist')
->assertNotFound()
->assertHeader('Content-Language', 'en')
->assertJson([
'code' => 'errors.not_found',
'message' => 'The requested resource was not found.',
]);
}
}