X-Git-Url: http://source.bookstackapp.com/bookstack/blobdiff_plain/55456a57d62ff6500e48de73ba43e0e2bcbcc056..refs/pull/5280/head:/tests/Api/UsersApiTest.php diff --git a/tests/Api/UsersApiTest.php b/tests/Api/UsersApiTest.php index fadd2610c..a0c67d0d2 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; @@ -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,24 @@ 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_with_send_invite_works_with_value_of_1() + { + $this->actingAsApiAdmin(); + Notification::fake(); + + $resp = $this->postJson($this->baseEndpoint, [ + 'name' => 'Benny Boris', + 'email' => 'bboris@example.com', + 'send_invite' => '1', // Submissions via x-www-form-urlencoded/form-data may use 1 instead of boolean + ]); + + $resp->assertStatus(200); + /** @var User $user */ + $user = User::query()->where('email', '=', 'bboris@example.com')->first(); + Notification::assertSentTo($user, UserInviteNotification::class); } public function test_create_name_and_email_validation()