<?php

namespace Tests\Feature\Accessories\Ui;

use App\Models\Accessory;
use App\Models\Category;
use PHPUnit\Framework\Attributes\DataProvider;
use Tests\Support\ProvidesDataForFullMultipleCompanySupportTesting;
use Tests\TestCase;

class CreateAccessoryWithFullMultipleCompanySupportTest extends TestCase
{
    use ProvidesDataForFullMultipleCompanySupportTesting;

    #[DataProvider('dataForFullMultipleCompanySupportTesting')]
    public function testAdheresToFullMultipleCompaniesSupportScoping($data)
    {
        ['actor' => $actor, 'company_attempting_to_associate' => $company, 'assertions' => $assertions] = $data();

        $this->settings->enableMultipleFullCompanySupport();

        $this->actingAs($actor)
            ->post(route('accessories.store'), [
                'redirect_option' => 'index',
                'name' => 'My Cool Accessory',
                'qty' => '1',
                'category_id' => Category::factory()->create()->id,
                'company_id' => $company->id,
            ]);

        $accessory = Accessory::withoutGlobalScopes()->where([
            'name' => 'My Cool Accessory',
        ])->sole();

        $assertions($accessory);
    }
}