Browse Source

Add notification fake (mock) to ResetPasswordTest

pull/1/head
Nafies Luthfi 8 years ago
parent
commit
d518836e92
  1. 3
      app/Entities/Subscriptions/SubscriptionsRepository.php
  2. 2
      app/Http/Controllers/AuthController.php
  3. 8
      app/Http/Controllers/SubscriptionsController.php
  4. 63
      config/app.php
  5. 28
      tests/Feature/Auth/ResetPasswordTest.php

3
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);

2
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');

8
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'));
}

63
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,
],

28
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);
}
);
}
}
Loading…
Cancel
Save