X-Git-Url: http://source.bookstackapp.com/bookstack/blobdiff_plain/068a8a068c5d7c7ab98a6ee95baae8d321c3c61f..refs/pull/4554/head:/tests/Api/UsersApiTest.php diff --git a/tests/Api/UsersApiTest.php b/tests/Api/UsersApiTest.php index 739981f24..6ad727257 100644 --- a/tests/Api/UsersApiTest.php +++ b/tests/Api/UsersApiTest.php @@ -2,11 +2,13 @@ namespace Tests\Api; -use BookStack\Actions\ActivityType; -use BookStack\Auth\Role; -use BookStack\Auth\User; +use BookStack\Access\Notifications\UserInviteNotification; +use BookStack\Activity\ActivityType; +use BookStack\Activity\Models\Activity as ActivityModel; use BookStack\Entities\Models\Entity; -use BookStack\Notifications\UserInvite; +use BookStack\Facades\Activity; +use BookStack\Users\Models\Role; +use BookStack\Users\Models\User; use Illuminate\Support\Facades\Hash; use Illuminate\Support\Facades\Notification; use Tests\TestCase; @@ -15,9 +17,9 @@ class UsersApiTest extends TestCase { use TestsApi; - protected $baseEndpoint = '/api/users'; + protected string $baseEndpoint = '/api/users'; - protected $endpointMap = [ + protected array $endpointMap = [ ['get', '/api/users'], ['post', '/api/users'], ['get', '/api/users/1'], @@ -47,7 +49,7 @@ class UsersApiTest extends TestCase } } - public function test_index_endpoint_returns_expected_shelf() + public function test_index_endpoint_returns_expected_user() { $this->actingAsApiAdmin(); /** @var User $firstUser */ @@ -67,6 +69,27 @@ class UsersApiTest extends TestCase ]]); } + public function test_index_endpoint_has_correct_created_and_last_activity_dates() + { + $user = $this->users->editor(); + $user->created_at = now()->subYear(); + $user->save(); + + $this->actingAs($user); + Activity::add(ActivityType::AUTH_LOGIN, 'test login activity'); + /** @var ActivityModel $activity */ + $activity = ActivityModel::query()->where('user_id', '=', $user->id)->latest()->first(); + + $resp = $this->asAdmin()->getJson($this->baseEndpoint . '?filter[id]=3'); + $resp->assertJson(['data' => [ + [ + 'id' => $user->id, + 'created_at' => $user->created_at->toJSON(), + 'last_activity_at' => $activity->created_at->toJson(), + ], + ]]); + } + public function test_create_endpoint() { $this->actingAsApiAdmin(); @@ -117,7 +140,7 @@ class UsersApiTest extends TestCase $resp->assertStatus(200); /** @var User $user */ $user = User::query()->where('email', '=', 'bboris@example.com')->first(); - Notification::assertSentTo($user, UserInvite::class); + Notification::assertSentTo($user, UserInviteNotification::class); } public function test_create_name_and_email_validation() @@ -175,7 +198,7 @@ class UsersApiTest extends TestCase { $this->actingAsApiAdmin(); /** @var User $user */ - $user = $this->getAdmin(); + $user = $this->users->admin(); $roles = Role::query()->pluck('id'); $resp = $this->putJson($this->baseEndpoint . "/{$user->id}", [ 'name' => 'My updated user', @@ -204,7 +227,7 @@ class UsersApiTest extends TestCase { $this->actingAsApiAdmin(); /** @var User $user */ - $user = $this->getAdmin(); + $user = $this->users->admin(); $roleCount = $user->roles()->count(); $resp = $this->putJson($this->baseEndpoint . "/{$user->id}", []); @@ -222,7 +245,7 @@ class UsersApiTest extends TestCase { $this->actingAsApiAdmin(); /** @var User $user */ - $user = User::query()->where('id', '!=', $this->getAdmin()->id) + $user = User::query()->where('id', '!=', $this->users->admin()->id) ->whereNull('system_name') ->first(); @@ -236,7 +259,7 @@ class UsersApiTest extends TestCase { $this->actingAsApiAdmin(); /** @var User $user */ - $user = User::query()->where('id', '!=', $this->getAdmin()->id) + $user = User::query()->where('id', '!=', $this->users->admin()->id) ->whereNull('system_name') ->first(); $entityChain = $this->entities->createChainBelongingToUser($user);