mirror of
https://github.com/snipe/snipe-it.git
synced 2025-01-13 06:47:46 -08:00
Added API tests
Signed-off-by: snipe <snipe@snipe.net>
This commit is contained in:
parent
5e8c129c7f
commit
86e274faa3
|
@ -2,6 +2,7 @@
|
|||
|
||||
namespace Tests\Feature\Api\Users;
|
||||
|
||||
use App\Models\Company;
|
||||
use App\Models\User;
|
||||
use Tests\TestCase;
|
||||
|
||||
|
@ -58,4 +59,68 @@ class UpdateUserApiTest extends TestCase
|
|||
|
||||
$this->assertEquals(0, $user->refresh()->activated);
|
||||
}
|
||||
|
||||
public function testUsersScopedToCompanyDuringUpdateWhenMultipleFullCompanySupportEnabled()
|
||||
{
|
||||
$this->settings->enableMultipleFullCompanySupport();
|
||||
|
||||
$companyA = Company::factory()->create(['name'=>'Company A']);
|
||||
$companyB = Company::factory()->create(['name'=>'Company B']);
|
||||
|
||||
$adminA = User::factory(['company_id' => $companyA->id])->admin()->create();
|
||||
$adminB = User::factory(['company_id' => $companyB->id])->admin()->create();
|
||||
$adminNoCompany = User::factory(['company_id' => null])->admin()->create();
|
||||
|
||||
// Create a user that belongs to company B
|
||||
$userA = User::factory()->create(['activated' => true, 'company_id' => $companyA->id]);
|
||||
$userB = User::factory()->create(['activated' => true, 'company_id' => $companyB->id]);
|
||||
$userNoCompany = User::factory()->create(['activated' => true, 'company_id' => null]);
|
||||
|
||||
// Admin for Company A should allow updating user from Company A
|
||||
$this->actingAsForApi($adminA)
|
||||
->patchJson(route('api.users.update', $userA))
|
||||
->assertStatus(200);
|
||||
|
||||
// Admin for Company A should get denied updating user from Company B
|
||||
$this->actingAsForApi($adminA)
|
||||
->patchJson(route('api.users.update', $userB))
|
||||
->assertStatus(403);
|
||||
|
||||
// Admin for Company A should get denied updating user without a company
|
||||
$this->actingAsForApi($adminA)
|
||||
->patchJson(route('api.users.update', $userNoCompany))
|
||||
->assertStatus(403);
|
||||
|
||||
// Admin for Company B should allow updating user from Company B
|
||||
$this->actingAsForApi($adminB)
|
||||
->patchJson(route('api.users.update', $userB))
|
||||
->assertStatus(200);
|
||||
|
||||
// Admin for Company B should get denied updating user from Company A
|
||||
$this->actingAsForApi($adminB)
|
||||
->patchJson(route('api.users.update', $userA))
|
||||
->assertStatus(403);
|
||||
|
||||
// Admin for Company B should get denied updating user without a company
|
||||
$this->actingAsForApi($adminB)
|
||||
->patchJson(route('api.users.update', $userNoCompany))
|
||||
->assertStatus(403);
|
||||
|
||||
// Admin without a company should allow updating user without a company
|
||||
$this->actingAsForApi($adminNoCompany)
|
||||
->patchJson(route('api.users.update', $userNoCompany))
|
||||
->assertStatus(200);
|
||||
|
||||
// Admin without a company should get denied updating user from Company A
|
||||
$this->actingAsForApi($adminNoCompany)
|
||||
->patchJson(route('api.users.update', $userA))
|
||||
->assertStatus(403);
|
||||
|
||||
// Admin without a company should get denied updating user from Company B
|
||||
$this->actingAsForApi($adminNoCompany)
|
||||
->patchJson(route('api.users.update', $userB))
|
||||
->assertStatus(403);
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue