From d518836e92d7f42b04f01591e25c35c5b2a4c3c0 Mon Sep 17 00:00:00 2001 From: Nafies Luthfi Date: Tue, 7 Nov 2017 10:26:43 +0800 Subject: [PATCH] Add notification fake (mock) to ResetPasswordTest --- .../Subscriptions/SubscriptionsRepository.php | 3 +- app/Http/Controllers/AuthController.php | 2 +- app/Http/Controllers/SubscriptionsController.php | 8 +-- config/app.php | 63 +++++++++++----------- tests/Feature/Auth/ResetPasswordTest.php | 28 +++++++--- 5 files changed, 61 insertions(+), 43 deletions(-) diff --git a/app/Entities/Subscriptions/SubscriptionsRepository.php b/app/Entities/Subscriptions/SubscriptionsRepository.php index 47a8d1c..495aae4 100755 --- a/app/Entities/Subscriptions/SubscriptionsRepository.php +++ b/app/Entities/Subscriptions/SubscriptionsRepository.php @@ -18,7 +18,8 @@ class SubscriptionsRepository extends BaseRepository public function getSubscriptions($q, $customerId) { - return $this->model->orderBy('due_date') + return $this->model->orderBy('status_id', 'desc') + ->orderBy('due_date') ->where(function ($query) use ($q, $customerId) { if ($customerId) { $query->where('customer_id', $customerId); diff --git a/app/Http/Controllers/AuthController.php b/app/Http/Controllers/AuthController.php index 9bae1bf..8f8116a 100755 --- a/app/Http/Controllers/AuthController.php +++ b/app/Http/Controllers/AuthController.php @@ -12,7 +12,7 @@ class AuthController extends Controller { public function __construct(Guard $auth, PasswordBroker $passwords) { - $this->auth = $auth; + $this->auth = $auth; $this->passwords = $passwords; $this->middleware('guest'); diff --git a/app/Http/Controllers/SubscriptionsController.php b/app/Http/Controllers/SubscriptionsController.php index d9780b9..847857a 100755 --- a/app/Http/Controllers/SubscriptionsController.php +++ b/app/Http/Controllers/SubscriptionsController.php @@ -28,7 +28,7 @@ class SubscriptionsController extends Controller public function create() { $projects = $this->repo->getProjectsList(); - $vendors = $this->repo->getVendorsList(); + $vendors = $this->repo->getVendorsList(); $subscriptionTypes = [ 1 => trans('subscription.types.domain'), @@ -54,9 +54,9 @@ class SubscriptionsController extends Controller public function edit($subscriptionId) { $subscription = $this->repo->requireById($subscriptionId); - $projects = $this->repo->getProjectsList(); - $customers = $this->repo->getCustomersList(); - $vendors = $this->repo->getVendorsList(); + $projects = $this->repo->getProjectsList(); + $customers = $this->repo->getCustomersList(); + $vendors = $this->repo->getVendorsList(); return view('subscriptions.edit', compact('subscription', 'projects', 'customers', 'vendors')); } diff --git a/config/app.php b/config/app.php index 6547340..56f10c1 100644 --- a/config/app.php +++ b/config/app.php @@ -176,39 +176,40 @@ return [ 'aliases' => [ - 'App' => Illuminate\Support\Facades\App::class, - 'Artisan' => Illuminate\Support\Facades\Artisan::class, - 'Auth' => Illuminate\Support\Facades\Auth::class, - 'Blade' => Illuminate\Support\Facades\Blade::class, - 'Cache' => Illuminate\Support\Facades\Cache::class, - 'Config' => Illuminate\Support\Facades\Config::class, - 'Cookie' => Illuminate\Support\Facades\Cookie::class, - 'Crypt' => Illuminate\Support\Facades\Crypt::class, - 'DB' => Illuminate\Support\Facades\DB::class, - 'Eloquent' => Illuminate\Database\Eloquent\Model::class, - 'Event' => Illuminate\Support\Facades\Event::class, - 'File' => Illuminate\Support\Facades\File::class, - 'Gate' => Illuminate\Support\Facades\Gate::class, - 'Hash' => Illuminate\Support\Facades\Hash::class, - 'Lang' => Illuminate\Support\Facades\Lang::class, - 'Log' => Illuminate\Support\Facades\Log::class, - 'Mail' => Illuminate\Support\Facades\Mail::class, - 'Password' => Illuminate\Support\Facades\Password::class, - 'Queue' => Illuminate\Support\Facades\Queue::class, - 'Redirect' => Illuminate\Support\Facades\Redirect::class, - 'Redis' => Illuminate\Support\Facades\Redis::class, - 'Request' => Illuminate\Support\Facades\Request::class, - 'Response' => Illuminate\Support\Facades\Response::class, - 'Route' => Illuminate\Support\Facades\Route::class, - 'Schema' => Illuminate\Support\Facades\Schema::class, - 'Session' => Illuminate\Support\Facades\Session::class, - 'Storage' => Illuminate\Support\Facades\Storage::class, - 'URL' => Illuminate\Support\Facades\URL::class, + 'App' => Illuminate\Support\Facades\App::class, + 'Artisan' => Illuminate\Support\Facades\Artisan::class, + 'Auth' => Illuminate\Support\Facades\Auth::class, + 'Blade' => Illuminate\Support\Facades\Blade::class, + 'Cache' => Illuminate\Support\Facades\Cache::class, + 'Config' => Illuminate\Support\Facades\Config::class, + 'Cookie' => Illuminate\Support\Facades\Cookie::class, + 'Crypt' => Illuminate\Support\Facades\Crypt::class, + 'DB' => Illuminate\Support\Facades\DB::class, + 'Eloquent' => Illuminate\Database\Eloquent\Model::class, + 'Event' => Illuminate\Support\Facades\Event::class, + 'File' => Illuminate\Support\Facades\File::class, + 'Gate' => Illuminate\Support\Facades\Gate::class, + 'Hash' => Illuminate\Support\Facades\Hash::class, + 'Lang' => Illuminate\Support\Facades\Lang::class, + 'Log' => Illuminate\Support\Facades\Log::class, + 'Mail' => Illuminate\Support\Facades\Mail::class, + 'Notification' => Illuminate\Support\Facades\Notification::class, + 'Password' => Illuminate\Support\Facades\Password::class, + 'Queue' => Illuminate\Support\Facades\Queue::class, + 'Redirect' => Illuminate\Support\Facades\Redirect::class, + 'Redis' => Illuminate\Support\Facades\Redis::class, + 'Request' => Illuminate\Support\Facades\Request::class, + 'Response' => Illuminate\Support\Facades\Response::class, + 'Route' => Illuminate\Support\Facades\Route::class, + 'Schema' => Illuminate\Support\Facades\Schema::class, + 'Session' => Illuminate\Support\Facades\Session::class, + 'Storage' => Illuminate\Support\Facades\Storage::class, + 'URL' => Illuminate\Support\Facades\URL::class, 'Validator' => Illuminate\Support\Facades\Validator::class, - 'View' => Illuminate\Support\Facades\View::class, + 'View' => Illuminate\Support\Facades\View::class, - 'Carbon' => Carbon\Carbon::class, - 'Option' => App\Services\Facades\Option::class, + 'Carbon' => Carbon\Carbon::class, + 'Option' => App\Services\Facades\Option::class, 'Terbilang' => Riskihajar\Terbilang\Facades\Terbilang::class, ], diff --git a/tests/Feature/Auth/ResetPasswordTest.php b/tests/Feature/Auth/ResetPasswordTest.php index 01e3a58..6d18817 100644 --- a/tests/Feature/Auth/ResetPasswordTest.php +++ b/tests/Feature/Auth/ResetPasswordTest.php @@ -3,6 +3,7 @@ namespace Tests\Feature\Auth; use App\Entities\Users\User; +use Notification; use Tests\TestCase; class ResetPasswordTest extends TestCase @@ -10,21 +11,36 @@ class ResetPasswordTest extends TestCase /** @test */ public function user_can_reset_password_by_their_email() { - // $user = factory(User::class)->create(); - $user1 = factory(User::class)->create(['email' => 'testing@app.dev']); + Notification::fake(); + + $user = factory(User::class)->create(['email' => 'testing@app.dev']); - // Reset Request - $this->visit('password/reset'); $this->notSeeInDatabase('password_resets', [ - 'email' => 'testing@app.dev' + 'email' => 'testing@app.dev', ]); + + // Reset Request + $this->visit('password/reset'); $this->see(trans('auth.reset_password')); $this->type('testing@app.dev', 'email'); $this->press(trans('auth.send_reset_password_link')); + $this->seePageIs('password/reset'); $this->see(trans('passwords.sent')); $this->seeInDatabase('password_resets', [ - 'email' => 'testing@app.dev' + 'email' => 'testing@app.dev', ]); + + Notification::assertSentTo( + $user, + 'Illuminate\Auth\Notifications\ResetPassword', + function ($notification, $channels) use ($user) { + + $userPasswordReset = \DB::table('password_resets') + ->where('email', $user->email)->first(); + + return password_verify($notification->token, $userPasswordReset->token); + } + ); } }