5 use BookStack\Auth\Role;
6 use BookStack\Auth\User;
9 class UsersApiTest extends TestCase
13 protected $baseEndpoint = '/api/users';
15 public function test_users_manage_permission_needed_for_all_endpoints()
20 public function test_index_endpoint_returns_expected_shelf()
22 $this->actingAsApiAdmin();
23 /** @var User $firstUser */
24 $firstUser = User::query()->orderBy('id', 'asc')->first();
26 $resp = $this->getJson($this->baseEndpoint . '?count=1&sort=+id');
27 $resp->assertJson(['data' => [
29 'id' => $firstUser->id,
30 'name' => $firstUser->name,
31 'slug' => $firstUser->slug,
32 'email' => $firstUser->email,
33 'profile_url' => $firstUser->getProfileUrl(),
34 'edit_url' => $firstUser->getEditUrl(),
35 'avatar_url' => $firstUser->getAvatar(),
40 public function test_read_endpoint()
42 $this->actingAsApiAdmin();
43 /** @var User $user */
44 $user = User::query()->first();
45 /** @var Role $userRole */
46 $userRole = $user->roles()->first();
48 $resp = $this->getJson($this->baseEndpoint . "/{$user->id}");
50 $resp->assertStatus(200);
53 'slug' => $user->slug,
54 'email' => $user->email,
55 'external_auth_id' => $user->external_auth_id,
58 'id' => $userRole->id,
59 'display_name' => $userRole->display_name,