From c09e93e288afe4bf553102be5d98b6c41e8358b3 Mon Sep 17 00:00:00 2001 From: snipe Date: Sat, 1 Jun 2024 02:59:04 +0100 Subject: [PATCH] Updated delete users API tests, moved non-API tests Signed-off-by: snipe --- tests/Feature/Api/Users/DeleteUsersTest.php | 69 +++++++++++++++++++ .../DeleteUsersTest.php} | 4 +- 2 files changed, 71 insertions(+), 2 deletions(-) create mode 100644 tests/Feature/Api/Users/DeleteUsersTest.php rename tests/Feature/{Api/Users/UsersDeleteTest.php => Users/DeleteUsersTest.php} (95%) diff --git a/tests/Feature/Api/Users/DeleteUsersTest.php b/tests/Feature/Api/Users/DeleteUsersTest.php new file mode 100644 index 000000000..830008d0b --- /dev/null +++ b/tests/Feature/Api/Users/DeleteUsersTest.php @@ -0,0 +1,69 @@ +create(); + User::factory()->count(5)->create(['manager_id' => $manager->id]); + $this->assertFalse($manager->isDeletable()); + + $this->actingAsForApi(User::factory()->deleteUsers()->create()) + ->deleteJson(route('api.users.destroy', $manager->id)) + ->assertOk() + ->assertStatus(200) + ->assertStatusMessageIs('error') + ->json(); + } + + public function testDisallowUserDeletionViaApiIfStillManagingLocations() + { + $manager = User::factory()->create(); + Location::factory()->count(5)->create(['manager_id' => $manager->id]); + + $this->assertFalse($manager->isDeletable()); + + $this->actingAsForApi(User::factory()->deleteUsers()->create()) + ->deleteJson(route('api.users.destroy', $manager->id)) + ->assertOk() + ->assertStatus(200) + ->assertStatusMessageIs('error') + ->json(); + } + + public function testDisallowUserDeletionViaApiIfStillHasLicenses() + { + $manager = User::factory()->create(); + LicenseSeat::factory()->count(5)->create(['assigned_to' => $manager->id]); + + $this->assertFalse($manager->isDeletable()); + + $this->actingAsForApi(User::factory()->deleteUsers()->create()) + ->deleteJson(route('api.users.destroy', $manager->id)) + ->assertOk() + ->assertStatus(200) + ->assertStatusMessageIs('error') + ->json(); + } + + public function testDisallowUserDeletionIfNoDeletePermissions() + { + + $this->actingAsForApi(User::factory()->create()) + ->deleteJson(route('api.users.destroy', User::factory()->create())) + ->assertStatus(403) + ->json(); + } + + + +} diff --git a/tests/Feature/Api/Users/UsersDeleteTest.php b/tests/Feature/Users/DeleteUsersTest.php similarity index 95% rename from tests/Feature/Api/Users/UsersDeleteTest.php rename to tests/Feature/Users/DeleteUsersTest.php index cbdba8327..9903081e2 100644 --- a/tests/Feature/Api/Users/UsersDeleteTest.php +++ b/tests/Feature/Users/DeleteUsersTest.php @@ -1,13 +1,13 @@