snipe-it/tests/Feature/Consumables/Api/ConsumableViewTest.php
snipe a6b2f5df1d Added tests
Signed-off-by: snipe <snipe@snipe.net>
2024-07-11 15:24:56 +01:00

52 lines
1.7 KiB
PHP

<?php
namespace Tests\Feature\Consumables\Api;
use App\Models\Company;
use App\Models\Consumable;
use App\Models\User;
use Tests\TestCase;
class ConsumableViewTest extends TestCase
{
public function testConsumableViewAdheresToCompanyScoping()
{
[$companyA, $companyB] = Company::factory()->count(2)->create();
$consumableA = Consumable::factory()->for($companyA)->create();
$consumableB = Consumable::factory()->for($companyB)->create();
$superUser = $companyA->users()->save(User::factory()->superuser()->make());
$userInCompanyA = $companyA->users()->save(User::factory()->viewConsumables()->make());
$userInCompanyB = $companyB->users()->save(User::factory()->viewConsumables()->make());
$this->settings->disableMultipleFullCompanySupport();
$this->actingAsForApi($superUser)
->getJson(route('api.consumables.show', $consumableA))
->assertOk();
$this->actingAsForApi($userInCompanyA)
->getJson(route('api.consumables.show', $consumableA))
->assertOk();
$this->actingAsForApi($userInCompanyB)
->getJson(route('api.consumables.show', $consumableB))
->assertOk();
$this->settings->enableMultipleFullCompanySupport();
$this->actingAsForApi($superUser)
->getJson(route('api.consumables.show', $consumableA))
->assertOk();
$this->actingAsForApi($userInCompanyA)
->getJson(route('api.consumables.index'))
->assertOk();
$this->actingAsForApi($userInCompanyB)
->getJson(route('api.consumables.index'))
->assertOk();
}
}