Skip to content

Commit 319ead7

Browse files
committed
Add test covering password reset email
1 parent 50d5568 commit 319ead7

1 file changed

Lines changed: 21 additions & 0 deletions

File tree

tests/Feature/Http/Controllers/User/PasswordControllerTest.php

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,10 @@
88
use CraftCms\Cms\Support\Facades\UserPermissions;
99
use CraftCms\Cms\User\Elements\User;
1010
use CraftCms\Cms\User\Models\User as UserModel;
11+
use CraftCms\Cms\User\Notifications\ResetPasswordNotification;
12+
use Illuminate\Notifications\Channels\MailChannel;
1113
use Illuminate\Support\Facades\Gate;
14+
use Illuminate\Support\Facades\Notification;
1215
use Illuminate\Support\Facades\Session;
1316

1417
use function CraftCms\Cms\t;
@@ -180,6 +183,24 @@
180183
expect($response->status())->not()->toBe(401);
181184
});
182185

186+
it('sends password reset email for a valid loginName', function () {
187+
Notification::fake();
188+
auth()->logout();
189+
190+
$user = UserModel::factory()->createElement();
191+
$user = User::find()->id($user->id)->one();
192+
193+
postJson(action([PasswordController::class, 'sendPasswordResetEmail']), [
194+
'loginName' => $user->email,
195+
])->assertOk();
196+
197+
Notification::assertSentTo(
198+
$user,
199+
ResetPasswordNotification::class,
200+
fn ($notification, $channels) => in_array(MailChannel::class, $channels)
201+
);
202+
});
203+
183204
it('requires loginName when not providing userId for sendPasswordResetEmail', function () {
184205
$response = postJson(action([PasswordController::class, 'sendPasswordResetEmail']), []);
185206

0 commit comments

Comments
 (0)