| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- <?php
- namespace Tests\Unit;
- use App\Http\Requests\ProductRequest;
- use App\Models\Product;
- use App\Services\ProductService;
- use Illuminate\Foundation\Testing\RefreshDatabase;
- use Illuminate\Support\Facades\Validator;
- use Tests\TestCase;
- /**
- * Regressão: produtos não apareciam pra franqueada porque visible_franchisee
- * nunca estava nas rules() do ProductRequest — o toggle "Visível para
- * Franqueado" do cadastro de produto era descartado antes de chegar no
- * banco, então todo produto ficava com visible_franchisee=false (default da
- * coluna), e o filtro `visible_franchisee=true` usado na tela de Proposta
- * Comercial da franqueada nunca retornava nada.
- */
- class ProductVisibleFranchiseeTest extends TestCase
- {
- use RefreshDatabase;
- public function test_request_accepts_visible_franchisee(): void
- {
- $request = ProductRequest::create('/product', 'POST', [
- 'name' => 'Produto Teste',
- 'price_sale' => 10,
- 'quantity' => 1,
- 'visible_franchisee' => true,
- ]);
- $validator = Validator::make($request->all(), $request->rules());
- $this->assertFalse($validator->fails());
- }
- public function test_service_persists_visible_franchisee_and_select_filter_finds_it(): void
- {
- $service = new ProductService();
- $service->create([
- 'name' => 'Visível pro Franqueado',
- 'price_sale' => 10,
- 'quantity' => 1,
- 'visible_franchisee' => true,
- ]);
- $service->create([
- 'name' => 'Só Franqueadora',
- 'price_sale' => 10,
- 'quantity' => 1,
- 'visible_franchisee' => false,
- ]);
- $visibleForFranchisee = Product::query()->where('visible_franchisee', true)->pluck('name');
- $this->assertSame(['Visível pro Franqueado'], $visibleForFranchisee->all());
- }
- }
|