66 lines
2.1 KiB
PHP
66 lines
2.1 KiB
PHP
<?php
|
|
|
|
use App\Models\User;
|
|
use Spatie\Permission\Models\Permission;
|
|
use Spatie\Permission\Models\Role;
|
|
|
|
test('user can be soft deleted and hidden from the list', function () {
|
|
Permission::firstOrCreate(['name' => 'users_access']);
|
|
|
|
$admin = User::factory()->create();
|
|
$adminRole = Role::firstOrCreate(['name' => 'admin']);
|
|
$admin->assignRole($adminRole);
|
|
$admin->givePermissionTo('users_access');
|
|
|
|
$user = User::factory()->create();
|
|
|
|
$response = $this
|
|
->actingAs($admin)
|
|
->delete('/users/' . $user->id);
|
|
|
|
$response->assertRedirect(route('users.index'));
|
|
$this->assertSoftDeleted($user);
|
|
$this->assertNotNull($user->fresh()->deleted_at);
|
|
});
|
|
|
|
test('deleted users can be listed and restored', function () {
|
|
Permission::firstOrCreate(['name' => 'users_access']);
|
|
|
|
$admin = User::factory()->create();
|
|
$adminRole = Role::firstOrCreate(['name' => 'admin']);
|
|
$admin->assignRole($adminRole);
|
|
$admin->givePermissionTo('users_access');
|
|
|
|
$user = User::factory()->create();
|
|
$user->delete();
|
|
|
|
$indexResponse = $this->actingAs($admin)->get('/users/deleted');
|
|
$indexResponse->assertOk();
|
|
$indexResponse->assertSee($user->email);
|
|
|
|
$restoreResponse = $this->actingAs($admin)->post('/users/' . $user->id . '/restore');
|
|
$restoreResponse->assertRedirect(route('users.deleted'));
|
|
$this->assertNull($user->fresh()->deleted_at);
|
|
});
|
|
|
|
test('edit page does not render nested forms for user actions', function () {
|
|
Permission::firstOrCreate(['name' => 'users_access']);
|
|
|
|
$admin = User::factory()->create();
|
|
$adminRole = Role::firstOrCreate(['name' => 'admin']);
|
|
$admin->assignRole($adminRole);
|
|
$admin->givePermissionTo('users_access');
|
|
|
|
$user = User::factory()->create();
|
|
|
|
$response = $this->actingAs($admin)->get('/users/' . $user->id . '/edit');
|
|
$response->assertOk();
|
|
|
|
$html = $response->getContent();
|
|
|
|
$this->assertDoesNotMatchRegularExpression(
|
|
'/<form[^>]*action="[^"]*\/users\/' . preg_quote((string) $user->id, '/') . '[^"]*"[^>]*>(?:(?!<\/form>).)*<form\b/s',
|
|
$html
|
|
);
|
|
});
|