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); } }