$this->checkPermission('user-roles-manage');
try {
- $this->permissionsRepo->deleteRole($id, $request->get('migrate_role_id', 0));
+ $migrateRoleId = intval($request->get('migrate_role_id') ?: "0");
+ $this->permissionsRepo->deleteRole($id, $migrateRoleId);
} catch (PermissionsException $e) {
$this->showErrorNotification($e->getMessage());
$this->assertEquals($this->user->id, $roleA->users()->first()->id);
}
+ public function test_delete_with_empty_migrate_option_works()
+ {
+ $role = $this->users->attachNewRole($this->user);
+
+ $this->assertCount(1, $role->users()->get());
+
+ $deletePage = $this->asAdmin()->get("/settings/roles/delete/$role->id");
+ $this->withHtml($deletePage)->assertElementExists('select[name=migrate_role_id]');
+ $resp = $this->asAdmin()->delete("/settings/roles/delete/$role->id", [
+ 'migrate_role_id' => '',
+ ]);
+
+ $resp->assertRedirect('/settings/roles');
+ $this->assertDatabaseMissing('roles', ['id' => $role->id]);
+ }
+
public function test_entity_permissions_are_removed_on_delete()
{
/** @var Role $roleA */