Files
snipe-it/tests/Feature/Licenses/Ui/UpdateLicenseTest.php
T
2025-06-24 17:35:49 +01:00

105 lines
3.6 KiB
PHP

<?php
namespace Tests\Feature\Licenses\Ui;
use App\Models\Category;
use App\Models\License;
use App\Models\User;
use Tests\TestCase;
class UpdateLicenseTest extends TestCase
{
public function testPageRenders()
{
$this->actingAs(User::factory()->superuser()->create())
->get(route('licenses.edit', License::factory()->create()->id))
->assertOk();
}
public function testCanUpdateLicenseSeats()
{
$admin = User::factory()->superuser()->create();
$license_category = Category::factory()->forLicenses()->create()->id;
$response = $this->actingAs($admin)
->from(route('licenses.create'))
->post(route('licenses.store'), [
'name' => 'Test Update License',
'seats' => '9999',
'category_id' => $license_category,
]);
$response->assertStatus(302);
$license = License::where('name', 'Test Update License')->sole();
$this->assertNotNull($license);
$this->actingAs($admin)
->put(route('licenses.update', $license->id), [
'name' => 'Test Update License',
'seats' => '19999',
'category_id' => $license_category,
])
->assertStatus(302);
$license->refresh();
$this->assertEquals($license->licenseseats()->count(), $license->seats);
$this->assertEquals($license->licenseseats()->count(), 19999);
}
public function testCannotUpdateLicenseSeatsTooMuch()
{
$admin = User::factory()->superuser()->create();
$license_category = Category::factory()->forLicenses()->create()->id;
$response = $this->actingAs($admin)
->from(route('licenses.create'))
->post(route('licenses.store'), [
'name' => 'Test Update License',
'seats' => '9999',
'category_id' => $license_category,
]);
$response->assertStatus(302);
$license = License::where('name', 'Test Update License')->sole();
$this->assertNotNull($license);
$this->actingAs($admin)
->put(route('licenses.update', $license->id), [
'name' => 'Test Update License',
'seats' => '29999',
'category_id' => $license_category,
])
->assertStatus(302);
$license->refresh();
$this->assertEquals($license->licenseseats()->count(), $license->seats);
$this->assertEquals($license->licenseseats()->count(), 9999);
}
public function testCanRemoveLicenseSeats()
{
$admin = User::factory()->superuser()->create();
$license_category = Category::factory()->forLicenses()->create()->id;
$response = $this->actingAs($admin)
->from(route('licenses.create'))
->post(route('licenses.store'), [
'name' => 'Test Remove License Seats',
'seats' => '9999',
'category_id' => $license_category,
]);
$response->assertStatus(302);
$license = License::where('name', 'Test Remove License Seats')->sole();
$this->assertNotNull($license);
$this->actingAs($admin)
->put(route('licenses.update', $license->id), [
'name' => 'Test Remove License Seats',
'seats' => '5000',
'category_id' => $license_category,
])
->assertStatus(302);
$license->refresh();
$this->assertEquals($license->licenseseats()->count(), $license->seats);
$this->assertEquals($license->licenseseats()->count(), 5000);
}
}