From ae6149df84457cf8337cc6c108cb2bde5a335f45 Mon Sep 17 00:00:00 2001 From: ncoronel Date: Thu, 20 Aug 2026 15:12:20 -0300 Subject: [PATCH] feat: enable full cart editing for Desfile tenant and update related tests --- app/Domains/Cart/Services/CartService.php | 26 ++++++++++++------- ...0_enable_full_cart_editing_for_desfile.php | 23 ++++++++++++++++ .../seeders/DesfilePuraTendenciaSeeder.php | 2 +- tests/Feature/Cart/CartControllerTest.php | 1 + .../EnableFullCartEditingForDesfileTest.php | 26 +++++++++++++++++++ .../DesfilePuraTendenciaSeederTest.php | 2 +- 6 files changed, 68 insertions(+), 12 deletions(-) create mode 100644 database/migrations/2026_08_20_020000_enable_full_cart_editing_for_desfile.php create mode 100644 tests/Feature/Migrations/EnableFullCartEditingForDesfileTest.php diff --git a/app/Domains/Cart/Services/CartService.php b/app/Domains/Cart/Services/CartService.php index 014a111..044b11a 100644 --- a/app/Domains/Cart/Services/CartService.php +++ b/app/Domains/Cart/Services/CartService.php @@ -296,16 +296,22 @@ class CartService public function makeGuestTokenCookie(string $guestToken): Cookie { - return cookie( - 'guest_token', - $guestToken, - 60 * 24 * 180, - '/', - config('session.domain'), - (bool) config('session.secure'), - true, - false, - config('session.same_site'), + $secure = (bool) config('session.secure'); + $sameSite = config('session.same_site'); + $partitioned = (bool) config('session.partitioned') + || ($secure && strtolower((string) $sameSite) === 'none'); + + return Cookie::create( + name: 'guest_token', + value: $guestToken, + expire: now()->addDays(180), + path: '/', + domain: config('session.domain'), + secure: $secure, + httpOnly: true, + raw: false, + sameSite: $sameSite, + partitioned: $partitioned, ); } diff --git a/database/migrations/2026_08_20_020000_enable_full_cart_editing_for_desfile.php b/database/migrations/2026_08_20_020000_enable_full_cart_editing_for_desfile.php new file mode 100644 index 0000000..aeb3523 --- /dev/null +++ b/database/migrations/2026_08_20_020000_enable_full_cart_editing_for_desfile.php @@ -0,0 +1,23 @@ +where('codigo', self::TENANT_CODE) + ->update(['cart_editing_policy' => 'full']); + } + + public function down(): void + { + DB::table('tenants') + ->where('codigo', self::TENANT_CODE) + ->update(['cart_editing_policy' => 'disabled']); + } +}; diff --git a/database/seeders/DesfilePuraTendenciaSeeder.php b/database/seeders/DesfilePuraTendenciaSeeder.php index a86b9eb..54328c2 100644 --- a/database/seeders/DesfilePuraTendenciaSeeder.php +++ b/database/seeders/DesfilePuraTendenciaSeeder.php @@ -74,7 +74,7 @@ class DesfilePuraTendenciaSeeder extends Seeder 'display_categories' => false, 'display_seach_bar' => false, 'display_cart' => true, - 'cart_editing_policy' => 'disabled', + 'cart_editing_policy' => 'full', 'checkout_editing_policy' => 'disabled', 'display_cart_item_images' => false, 'scanner_category_validation_enabled' => false, diff --git a/tests/Feature/Cart/CartControllerTest.php b/tests/Feature/Cart/CartControllerTest.php index d195cf7..69e738d 100644 --- a/tests/Feature/Cart/CartControllerTest.php +++ b/tests/Feature/Cart/CartControllerTest.php @@ -63,6 +63,7 @@ class CartControllerTest extends TestCase $this->assertTrue($guestTokenCookie->isSecure()); $this->assertTrue($guestTokenCookie->isHttpOnly()); $this->assertSame('none', $guestTokenCookie->getSameSite()); + $this->assertTrue($guestTokenCookie->isPartitioned()); $this->assertDatabaseHas('carrito_items', [ 'catalog_item_id' => $item->id, diff --git a/tests/Feature/Migrations/EnableFullCartEditingForDesfileTest.php b/tests/Feature/Migrations/EnableFullCartEditingForDesfileTest.php new file mode 100644 index 0000000..8c941c0 --- /dev/null +++ b/tests/Feature/Migrations/EnableFullCartEditingForDesfileTest.php @@ -0,0 +1,26 @@ +down(); + $migration->up(); + + $this->assertDatabaseHas('tenants', [ + 'codigo' => 'desfile_pura_tendencia', + 'cart_editing_policy' => 'full', + ]); + } +} diff --git a/tests/Feature/Seeders/DesfilePuraTendenciaSeederTest.php b/tests/Feature/Seeders/DesfilePuraTendenciaSeederTest.php index facdf09..cdfa29a 100644 --- a/tests/Feature/Seeders/DesfilePuraTendenciaSeederTest.php +++ b/tests/Feature/Seeders/DesfilePuraTendenciaSeederTest.php @@ -44,7 +44,7 @@ class DesfilePuraTendenciaSeederTest extends TestCase 'footer_bg_color' => '#D4441C', 'display_categories' => false, 'display_seach_bar' => false, - 'cart_editing_policy' => 'disabled', + 'cart_editing_policy' => 'full', 'checkout_editing_policy' => 'disabled', 'display_cart_item_images' => false, 'site_title' => 'Desfile Pura Tendencia',