added it_send_reset_password_for_user test

This commit is contained in:
Peter Papp
2021-03-04 17:13:52 +01:00
parent 350b3cb6b3
commit 80f38d47ed
4 changed files with 35 additions and 13 deletions
+10 -7
View File
@@ -18,7 +18,9 @@ use App\Services\StripeService;
use App\Models\Share;
use App\Models\User;
use App\Models\UserSettings;
use Illuminate\Contracts\Foundation\Application;
use Illuminate\Contracts\Routing\ResponseFactory;
use Illuminate\Http\Response;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Password;
@@ -75,18 +77,18 @@ class UserController extends Controller
* Get user subscription details
*
* @param $id
* @return UserSubscription
* @return UserSubscription|Application|ResponseFactory|Response
*/
public function subscription($id)
{
$user = User::find($id);
if (! $user->stripeId() || ! $user->subscription('main')) {
return response('User doesn\'t have any subscription.', 404);
return response("User doesn't have any subscription.", 404);
}
return new UserSubscription(
User::find($id)
$user
);
}
@@ -146,9 +148,9 @@ class UserController extends Controller
* Send user password reset link
*
* @param $id
* @return ResponseFactory|\Illuminate\Http\Response
* @return ResponseFactory|Response
*/
public function send_password_reset_email($id)
public function reset_password($id)
{
$user = User::findOrFail($id);
@@ -158,7 +160,8 @@ class UserController extends Controller
}
// Get password token
$token = Password::getRepository()->create($user);
$token = Password::getRepository()
->create($user);
// Send user email
$user->sendPasswordResetNotification($token);
@@ -202,7 +205,7 @@ class UserController extends Controller
*
* @param DeleteUserRequest $request
* @param $id
* @return ResponseFactory|\Illuminate\Http\Response
* @return ResponseFactory|Response
* @throws \Exception
*/
public function delete_user(DeleteUserRequest $request, $id)
@@ -52,7 +52,7 @@
this.isSendingRequest = true
axios
.post(this.$store.getters.api + '/users/' + this.$route.params.id + '/send-password-email',
.post(this.$store.getters.api + '/users/' + this.$route.params.id + '/reset-password',
{}
)
.then(() => {
+1 -1
View File
@@ -16,7 +16,7 @@ Route::group(['prefix' => 'dashboard'], function () {
// Users
Route::group(['prefix' => 'users'], function () {
Route::post('/{id}/send-password-email', [UserController::class, 'send_password_reset_email']);
Route::post('/{id}/reset-password', [UserController::class, 'reset_password']);
Route::patch('/{id}/capacity', [UserController::class, 'change_storage_capacity']);
Route::get('/{id}/subscription', [UserController::class, 'subscription']);
Route::delete('/{id}/delete', [UserController::class, 'delete_user']);
+23 -4
View File
@@ -5,13 +5,11 @@ namespace Tests\Feature;
use App\Models\File;
use App\Models\Setting;
use App\Models\User;
use Carbon\Carbon;
use App\Notifications\ResetPassword;
use DB;
use Illuminate\Foundation\Testing\DatabaseMigrations;
use Illuminate\Foundation\Testing\RefreshDatabase;
use Illuminate\Foundation\Testing\WithFaker;
use Notification;
use Laravel\Sanctum\Sanctum;
use Stripe\Subscription;
use Tests\TestCase;
class AdminTest extends TestCase
@@ -201,4 +199,25 @@ class AdminTest extends TestCase
]
]);
}
/**
* @test
*/
public function it_send_reset_password_for_user()
{
Notification::fake();
$user = User::factory(User::class)
->create(['role' => 'user']);
$admin = User::factory(User::class)
->create(['role' => 'admin']);
Sanctum::actingAs($admin);
$this->postJson("/api/admin/users/$user->id/reset-password")
->assertStatus(204);
Notification::assertTimesSent(1, ResetPassword::class);
}
}