namespace Tests\Auth;
+use BookStack\Access\Notifications\UserInviteNotification;
use BookStack\Access\UserInviteService;
-use BookStack\Notifications\UserInvite;
use BookStack\Users\Models\User;
use Carbon\Carbon;
use Illuminate\Notifications\Messages\MailMessage;
$newUser = User::query()->where('email', '=', $email)->orderBy('id', 'desc')->first();
- Notification::assertSentTo($newUser, UserInvite::class);
+ Notification::assertSentTo($newUser, UserInviteNotification::class);
$this->assertDatabaseHas('user_invites', [
'user_id' => $newUser->id,
]);
$resp->assertRedirect('/settings/users');
$newUser = User::query()->where('email', '=', $email)->orderBy('id', 'desc')->first();
- Notification::assertSentTo($newUser, UserInvite::class, function ($notification, $channels, $notifiable) {
+ Notification::assertSentTo($newUser, UserInviteNotification::class, function ($notification, $channels, $notifiable) {
/** @var MailMessage $mail */
$mail = $notification->toMail($notifiable);
$setPasswordPageResp->assertRedirect('/password/email');
$setPasswordPageResp->assertSessionHas('error', 'This invitation link has expired. You can instead try to reset your account password.');
}
+
+ public function test_set_password_view_is_throttled()
+ {
+ for ($i = 0; $i < 11; $i++) {
+ $response = $this->get("/register/invite/tokenhere{$i}");
+ }
+
+ $response->assertStatus(429);
+ }
+
+ public function test_set_password_post_is_throttled()
+ {
+ for ($i = 0; $i < 11; $i++) {
+ $response = $this->post("/register/invite/tokenhere{$i}", [
+ 'password' => 'my test password',
+ ]);
+ }
+
+ $response->assertStatus(429);
+ }
}