Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Walter Felipe
pad-upe
Commits
775380b4
Commit
775380b4
authored
Jan 31, 2022
by
alissonalbuquerque
Browse files
add login feat
parent
da804a3b
Changes
61
Hide whitespace changes
Inline
Side-by-side
resources/views/components/button.blade.php
0 → 100644
View file @
775380b4
<button
{{
$
attributes-
>
merge(['type' => 'submit', 'class' => 'inline-flex items-center px-4 py-2 bg-gray-800 border border-transparent rounded-md font-semibold text-xs text-white uppercase tracking-widest hover:bg-gray-700 active:bg-gray-900 focus:outline-none focus:border-gray-900 focus:ring ring-gray-300 disabled:opacity-25 transition ease-in-out duration-150']) }}>
{{ $slot }}
</button>
resources/views/components/dropdown-link.blade.php
0 → 100644
View file @
775380b4
<a
{{
$
attributes-
>
merge(['class' => 'block px-4 py-2 text-sm leading-5 text-gray-700 hover:bg-gray-100 focus:outline-none focus:bg-gray-100 transition duration-150 ease-in-out']) }}>{{ $slot }}
</a>
resources/views/components/dropdown.blade.php
0 → 100644
View file @
775380b4
@
props
([
'align'
=>
'right'
,
'width'
=>
'48'
,
'contentClasses'
=>
'py-1 bg-white'
])
@
php
switch
(
$align
)
{
case
'left'
:
$alignmentClasses
=
'origin-top-left left-0'
;
break
;
case
'top'
:
$alignmentClasses
=
'origin-top'
;
break
;
case
'right'
:
default
:
$alignmentClasses
=
'origin-top-right right-0'
;
break
;
}
switch
(
$width
)
{
case
'48'
:
$width
=
'w-48'
;
break
;
}
@
endphp
<
div
class
=
"relative"
x
-
data
=
"{ open: false }"
@
click
.
outside
=
"open = false"
@
close
.
stop
=
"open = false"
>
<
div
@
click
=
"open = ! open"
>
{{
$trigger
}}
</
div
>
<
div
x
-
show
=
"open"
x
-
transition
:
enter
=
"transition ease-out duration-200"
x
-
transition
:
enter
-
start
=
"transform opacity-0 scale-95"
x
-
transition
:
enter
-
end
=
"transform opacity-100 scale-100"
x
-
transition
:
leave
=
"transition ease-in duration-75"
x
-
transition
:
leave
-
start
=
"transform opacity-100 scale-100"
x
-
transition
:
leave
-
end
=
"transform opacity-0 scale-95"
class
=
"absolute z-50 mt-2 {{
$width
}} rounded-md shadow-lg {{
$alignmentClasses
}}"
style
=
"display: none;"
@
click
=
"open = false"
>
<
div
class
=
"rounded-md ring-1 ring-black ring-opacity-5 {{
$contentClasses
}}"
>
{{
$content
}}
</
div
>
</
div
>
</
div
>
resources/views/components/input.blade.php
0 → 100644
View file @
775380b4
@
props
([
'disabled'
=>
false
])
<
input
{{
$disabled
?
'disabled'
:
''
}}
{
!!
$attributes
->
merge
([
'class'
=>
'rounded-md shadow-sm border-gray-300 focus:border-indigo-300 focus:ring focus:ring-indigo-200 focus:ring-opacity-50'
])
!!
}
>
resources/views/components/label.blade.php
0 → 100644
View file @
775380b4
@
props
([
'value'
])
<
label
{{
$attributes
->
merge
([
'class'
=>
'block font-medium text-sm text-gray-700'
])
}}
>
{{
$value
??
$slot
}}
</
label
>
resources/views/components/nav-link.blade.php
0 → 100644
View file @
775380b4
@
props
([
'active'
])
@
php
$classes
=
(
$active
??
false
)
?
'inline-flex items-center px-1 pt-1 border-b-2 border-indigo-400 text-sm font-medium leading-5 text-gray-900 focus:outline-none focus:border-indigo-700 transition duration-150 ease-in-out'
:
'inline-flex items-center px-1 pt-1 border-b-2 border-transparent text-sm font-medium leading-5 text-gray-500 hover:text-gray-700 hover:border-gray-300 focus:outline-none focus:text-gray-700 focus:border-gray-300 transition duration-150 ease-in-out'
;
@
endphp
<
a
{{
$attributes
->
merge
([
'class'
=>
$classes
])
}}
>
{{
$slot
}}
</
a
>
resources/views/components/responsive-nav-link.blade.php
0 → 100644
View file @
775380b4
@
props
([
'active'
])
@
php
$classes
=
(
$active
??
false
)
?
'block pl-3 pr-4 py-2 border-l-4 border-indigo-400 text-base font-medium text-indigo-700 bg-indigo-50 focus:outline-none focus:text-indigo-800 focus:bg-indigo-100 focus:border-indigo-700 transition duration-150 ease-in-out'
:
'block pl-3 pr-4 py-2 border-l-4 border-transparent text-base font-medium text-gray-600 hover:text-gray-800 hover:bg-gray-50 hover:border-gray-300 focus:outline-none focus:text-gray-800 focus:bg-gray-50 focus:border-gray-300 transition duration-150 ease-in-out'
;
@
endphp
<
a
{{
$attributes
->
merge
([
'class'
=>
$classes
])
}}
>
{{
$slot
}}
</
a
>
resources/views/dashboard.blade.php
0 → 100644
View file @
775380b4
<x-app-layout>
<x-slot
name=
"header"
>
<h2
class=
"font-semibold text-xl text-gray-800 leading-tight"
>
{{ __('Dashboard') }}
</h2>
</x-slot>
<div
class=
"py-12"
>
<div
class=
"max-w-7xl mx-auto sm:px-6 lg:px-8"
>
<div
class=
"bg-white overflow-hidden shadow-sm sm:rounded-lg"
>
<div
class=
"p-6 bg-white border-b border-gray-200"
>
You're logged in!
</div>
</div>
</div>
</div>
</x-app-layout>
resources/views/layouts/app.blade.php
0 → 100644
View file @
775380b4
<!DOCTYPE html>
<html
lang=
"{{ str_replace('_', '-', app()->getLocale()) }}"
>
<head>
<meta
charset=
"utf-8"
>
<meta
name=
"viewport"
content=
"width=device-width, initial-scale=1"
>
<meta
name=
"csrf-token"
content=
"{{ csrf_token() }}"
>
<title>
{{ config('app.name', 'Laravel') }}
</title>
<!-- Fonts -->
<link
rel=
"stylesheet"
href=
"https://fonts.googleapis.com/css2?family=Nunito:wght@400;600;700&display=swap"
>
<!-- Styles -->
<link
rel=
"stylesheet"
href=
"{{ asset('css/app.css') }}"
>
<!-- Scripts -->
<script
src=
"{{ asset('js/app.js') }}"
defer
></script>
</head>
<body
class=
"font-sans antialiased"
>
<div
class=
"min-h-screen bg-gray-100"
>
@include('layouts.navigation')
<!-- Page Heading -->
<header
class=
"bg-white shadow"
>
<div
class=
"max-w-7xl mx-auto py-6 px-4 sm:px-6 lg:px-8"
>
{{ $header }}
</div>
</header>
<!-- Page Content -->
<main>
{{ $slot }}
</main>
</div>
</body>
</html>
resources/views/layouts/guest.blade.php
0 → 100644
View file @
775380b4
<!DOCTYPE html>
<html
lang=
"{{ str_replace('_', '-', app()->getLocale()) }}"
>
<head>
<meta
charset=
"utf-8"
>
<meta
name=
"viewport"
content=
"width=device-width, initial-scale=1"
>
<meta
name=
"csrf-token"
content=
"{{ csrf_token() }}"
>
<title>
{{ config('app.name', 'Laravel') }}
</title>
<!-- Fonts -->
<link
rel=
"stylesheet"
href=
"https://fonts.googleapis.com/css2?family=Nunito:wght@400;600;700&display=swap"
>
<!-- Styles -->
<link
rel=
"stylesheet"
href=
"{{ asset('css/app.css') }}"
>
<!-- Scripts -->
<script
src=
"{{ asset('js/app.js') }}"
defer
></script>
</head>
<body>
<div
class=
"font-sans text-gray-900 antialiased"
>
{{ $slot }}
</div>
</body>
</html>
resources/views/layouts/navigation.blade.php
0 → 100644
View file @
775380b4
<nav
x-data=
"{ open: false }"
class=
"bg-white border-b border-gray-100"
>
<!-- Primary Navigation Menu -->
<div
class=
"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8"
>
<div
class=
"flex justify-between h-16"
>
<div
class=
"flex"
>
<!-- Logo -->
<div
class=
"shrink-0 flex items-center"
>
<a
href=
"{{ route('dashboard') }}"
>
<x-application-logo
class=
"block h-10 w-auto fill-current text-gray-600"
/>
</a>
</div>
<!-- Navigation Links -->
<div
class=
"hidden space-x-8 sm:-my-px sm:ml-10 sm:flex"
>
<x-nav-link
:href=
"route('dashboard')"
:active=
"request()->routeIs('dashboard')"
>
{{ __('Dashboard') }}
</x-nav-link>
</div>
</div>
<!-- Settings Dropdown -->
<div
class=
"hidden sm:flex sm:items-center sm:ml-6"
>
<x-dropdown
align=
"right"
width=
"48"
>
<x-slot
name=
"trigger"
>
<button
class=
"flex items-center text-sm font-medium text-gray-500 hover:text-gray-700 hover:border-gray-300 focus:outline-none focus:text-gray-700 focus:border-gray-300 transition duration-150 ease-in-out"
>
<div>
{{ Auth::user()->name }}
</div>
<div
class=
"ml-1"
>
<svg
class=
"fill-current h-4 w-4"
xmlns=
"http://www.w3.org/2000/svg"
viewBox=
"0 0 20 20"
>
<path
fill-rule=
"evenodd"
d=
"M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z"
clip-rule=
"evenodd"
/>
</svg>
</div>
</button>
</x-slot>
<x-slot
name=
"content"
>
<!-- Authentication -->
<form
method=
"POST"
action=
"{{ route('logout') }}"
>
@csrf
<x-dropdown-link
:href=
"route('logout')"
onclick=
"event.preventDefault();
this.closest('form').submit();"
>
{{ __('Log Out') }}
</x-dropdown-link>
</form>
</x-slot>
</x-dropdown>
</div>
<!-- Hamburger -->
<div
class=
"-mr-2 flex items-center sm:hidden"
>
<button
@
click=
"open = ! open"
class=
"inline-flex items-center justify-center p-2 rounded-md text-gray-400 hover:text-gray-500 hover:bg-gray-100 focus:outline-none focus:bg-gray-100 focus:text-gray-500 transition duration-150 ease-in-out"
>
<svg
class=
"h-6 w-6"
stroke=
"currentColor"
fill=
"none"
viewBox=
"0 0 24 24"
>
<path
:class=
"{'hidden': open, 'inline-flex': ! open }"
class=
"inline-flex"
stroke-linecap=
"round"
stroke-linejoin=
"round"
stroke-width=
"2"
d=
"M4 6h16M4 12h16M4 18h16"
/>
<path
:class=
"{'hidden': ! open, 'inline-flex': open }"
class=
"hidden"
stroke-linecap=
"round"
stroke-linejoin=
"round"
stroke-width=
"2"
d=
"M6 18L18 6M6 6l12 12"
/>
</svg>
</button>
</div>
</div>
</div>
<!-- Responsive Navigation Menu -->
<div
:class=
"{'block': open, 'hidden': ! open}"
class=
"hidden sm:hidden"
>
<div
class=
"pt-2 pb-3 space-y-1"
>
<x-responsive-nav-link
:href=
"route('dashboard')"
:active=
"request()->routeIs('dashboard')"
>
{{ __('Dashboard') }}
</x-responsive-nav-link>
</div>
<!-- Responsive Settings Options -->
<div
class=
"pt-4 pb-1 border-t border-gray-200"
>
<div
class=
"px-4"
>
<div
class=
"font-medium text-base text-gray-800"
>
{{ Auth::user()->name }}
</div>
<div
class=
"font-medium text-sm text-gray-500"
>
{{ Auth::user()->email }}
</div>
</div>
<div
class=
"mt-3 space-y-1"
>
<!-- Authentication -->
<form
method=
"POST"
action=
"{{ route('logout') }}"
>
@csrf
<x-responsive-nav-link
:href=
"route('logout')"
onclick=
"event.preventDefault();
this.closest('form').submit();"
>
{{ __('Log Out') }}
</x-responsive-nav-link>
</form>
</div>
</div>
</div>
</nav>
resources/views/welcome.blade.php
View file @
775380b4
...
...
@@ -25,7 +25,7 @@
@if (Route::has('login'))
<div
class=
"hidden fixed top-0 right-0 px-6 py-4 sm:block"
>
@auth
<a
href=
"{{ url('/
home
') }}"
class=
"text-sm text-gray-700 dark:text-gray-500 underline"
>
Home
</a>
<a
href=
"{{ url('/
dashboard
') }}"
class=
"text-sm text-gray-700 dark:text-gray-500 underline"
>
Dashboard
</a>
@else
<a
href=
"{{ route('login') }}"
class=
"text-sm text-gray-700 dark:text-gray-500 underline"
>
Log in
</a>
...
...
routes/auth.php
0 → 100644
View file @
775380b4
<?php
use
App\Http\Controllers\Auth\AuthenticatedSessionController
;
use
App\Http\Controllers\Auth\ConfirmablePasswordController
;
use
App\Http\Controllers\Auth\EmailVerificationNotificationController
;
use
App\Http\Controllers\Auth\EmailVerificationPromptController
;
use
App\Http\Controllers\Auth\NewPasswordController
;
use
App\Http\Controllers\Auth\PasswordResetLinkController
;
use
App\Http\Controllers\Auth\RegisteredUserController
;
use
App\Http\Controllers\Auth\VerifyEmailController
;
use
Illuminate\Support\Facades\Route
;
Route
::
get
(
'/register'
,
[
RegisteredUserController
::
class
,
'create'
])
->
middleware
(
'guest'
)
->
name
(
'register'
);
Route
::
post
(
'/register'
,
[
RegisteredUserController
::
class
,
'store'
])
->
middleware
(
'guest'
);
Route
::
get
(
'/login'
,
[
AuthenticatedSessionController
::
class
,
'create'
])
->
middleware
(
'guest'
)
->
name
(
'login'
);
Route
::
post
(
'/login'
,
[
AuthenticatedSessionController
::
class
,
'store'
])
->
middleware
(
'guest'
);
Route
::
get
(
'/forgot-password'
,
[
PasswordResetLinkController
::
class
,
'create'
])
->
middleware
(
'guest'
)
->
name
(
'password.request'
);
Route
::
post
(
'/forgot-password'
,
[
PasswordResetLinkController
::
class
,
'store'
])
->
middleware
(
'guest'
)
->
name
(
'password.email'
);
Route
::
get
(
'/reset-password/{token}'
,
[
NewPasswordController
::
class
,
'create'
])
->
middleware
(
'guest'
)
->
name
(
'password.reset'
);
Route
::
post
(
'/reset-password'
,
[
NewPasswordController
::
class
,
'store'
])
->
middleware
(
'guest'
)
->
name
(
'password.update'
);
Route
::
get
(
'/verify-email'
,
[
EmailVerificationPromptController
::
class
,
'__invoke'
])
->
middleware
(
'auth'
)
->
name
(
'verification.notice'
);
Route
::
get
(
'/verify-email/{id}/{hash}'
,
[
VerifyEmailController
::
class
,
'__invoke'
])
->
middleware
([
'auth'
,
'signed'
,
'throttle:6,1'
])
->
name
(
'verification.verify'
);
Route
::
post
(
'/email/verification-notification'
,
[
EmailVerificationNotificationController
::
class
,
'store'
])
->
middleware
([
'auth'
,
'throttle:6,1'
])
->
name
(
'verification.send'
);
Route
::
get
(
'/confirm-password'
,
[
ConfirmablePasswordController
::
class
,
'show'
])
->
middleware
(
'auth'
)
->
name
(
'password.confirm'
);
Route
::
post
(
'/confirm-password'
,
[
ConfirmablePasswordController
::
class
,
'store'
])
->
middleware
(
'auth'
);
Route
::
post
(
'/logout'
,
[
AuthenticatedSessionController
::
class
,
'destroy'
])
->
middleware
(
'auth'
)
->
name
(
'logout'
);
routes/web.php
View file @
775380b4
...
...
@@ -16,3 +16,9 @@ use Illuminate\Support\Facades\Route;
Route
::
get
(
'/'
,
function
()
{
return
view
(
'welcome'
);
});
Route
::
get
(
'/dashboard'
,
function
()
{
return
view
(
'dashboard'
);
})
->
middleware
([
'auth'
])
->
name
(
'dashboard'
);
require
__DIR__
.
'/auth.php'
;
tailwind.config.js
0 → 100644
View file @
775380b4
const
defaultTheme
=
require
(
'
tailwindcss/defaultTheme
'
);
module
.
exports
=
{
content
:
[
'
./vendor/laravel/framework/src/Illuminate/Pagination/resources/views/*.blade.php
'
,
'
./storage/framework/views/*.php
'
,
'
./resources/views/**/*.blade.php
'
,
],
theme
:
{
extend
:
{
fontFamily
:
{
sans
:
[
'
Nunito
'
,
...
defaultTheme
.
fontFamily
.
sans
],
},
},
},
plugins
:
[
require
(
'
@tailwindcss/forms
'
)],
};
tests/Feature/Auth/AuthenticationTest.php
0 → 100644
View file @
775380b4
<?php
namespace
Tests\Feature\Auth
;
use
App\Models\User
;
use
App\Providers\RouteServiceProvider
;
use
Illuminate\Foundation\Testing\RefreshDatabase
;
use
Tests\TestCase
;
class
AuthenticationTest
extends
TestCase
{
use
RefreshDatabase
;
public
function
test_login_screen_can_be_rendered
()
{
$response
=
$this
->
get
(
'/login'
);
$response
->
assertStatus
(
200
);
}
public
function
test_users_can_authenticate_using_the_login_screen
()
{
$user
=
User
::
factory
()
->
create
();
$response
=
$this
->
post
(
'/login'
,
[
'email'
=>
$user
->
email
,
'password'
=>
'password'
,
]);
$this
->
assertAuthenticated
();
$response
->
assertRedirect
(
RouteServiceProvider
::
HOME
);
}
public
function
test_users_can_not_authenticate_with_invalid_password
()
{
$user
=
User
::
factory
()
->
create
();
$this
->
post
(
'/login'
,
[
'email'
=>
$user
->
email
,
'password'
=>
'wrong-password'
,
]);
$this
->
assertGuest
();
}
}
tests/Feature/Auth/EmailVerificationTest.php
0 → 100644
View file @
775380b4
<?php
namespace
Tests\Feature\Auth
;
use
App\Models\User
;
use
App\Providers\RouteServiceProvider
;
use
Illuminate\Auth\Events\Verified
;
use
Illuminate\Foundation\Testing\RefreshDatabase
;
use
Illuminate\Support\Facades\Event
;
use
Illuminate\Support\Facades\URL
;
use
Tests\TestCase
;
class
EmailVerificationTest
extends
TestCase
{
use
RefreshDatabase
;
public
function
test_email_verification_screen_can_be_rendered
()
{
$user
=
User
::
factory
()
->
create
([
'email_verified_at'
=>
null
,
]);
$response
=
$this
->
actingAs
(
$user
)
->
get
(
'/verify-email'
);
$response
->
assertStatus
(
200
);
}
public
function
test_email_can_be_verified
()
{
$user
=
User
::
factory
()
->
create
([
'email_verified_at'
=>
null
,
]);
Event
::
fake
();
$verificationUrl
=
URL
::
temporarySignedRoute
(
'verification.verify'
,
now
()
->
addMinutes
(
60
),
[
'id'
=>
$user
->
id
,
'hash'
=>
sha1
(
$user
->
email
)]
);
$response
=
$this
->
actingAs
(
$user
)
->
get
(
$verificationUrl
);
Event
::
assertDispatched
(
Verified
::
class
);
$this
->
assertTrue
(
$user
->
fresh
()
->
hasVerifiedEmail
());
$response
->
assertRedirect
(
RouteServiceProvider
::
HOME
.
'?verified=1'
);
}
public
function
test_email_is_not_verified_with_invalid_hash
()
{
$user
=
User
::
factory
()
->
create
([
'email_verified_at'
=>
null
,
]);
$verificationUrl
=
URL
::
temporarySignedRoute
(
'verification.verify'
,
now
()
->
addMinutes
(
60
),
[
'id'
=>
$user
->
id
,
'hash'
=>
sha1
(
'wrong-email'
)]
);
$this
->
actingAs
(
$user
)
->
get
(
$verificationUrl
);
$this
->
assertFalse
(
$user
->
fresh
()
->
hasVerifiedEmail
());
}
}
tests/Feature/Auth/PasswordConfirmationTest.php
0 → 100644
View file @
775380b4
<?php
namespace
Tests\Feature\Auth
;
use
App\Models\User
;
use
Illuminate\Foundation\Testing\RefreshDatabase
;
use
Tests\TestCase
;
class
PasswordConfirmationTest
extends
TestCase
{
use
RefreshDatabase
;
public
function
test_confirm_password_screen_can_be_rendered
()
{
$user
=
User
::
factory
()
->
create
();
$response
=
$this
->
actingAs
(
$user
)
->
get
(
'/confirm-password'
);
$response
->
assertStatus
(
200
);
}
public
function
test_password_can_be_confirmed
()
{
$user
=
User
::
factory
()
->
create
();
$response
=
$this
->
actingAs
(
$user
)
->
post
(
'/confirm-password'
,
[
'password'
=>
'password'
,
]);
$response
->
assertRedirect
();
$response
->
assertSessionHasNoErrors
();
}
public
function
test_password_is_not_confirmed_with_invalid_password
()
{
$user
=
User
::
factory
()
->
create
();
$response
=
$this
->
actingAs
(
$user
)
->
post
(
'/confirm-password'
,
[
'password'
=>
'wrong-password'
,
]);
$response
->
assertSessionHasErrors
();
}
}
tests/Feature/Auth/PasswordResetTest.php
0 → 100644
View file @
775380b4
<?php
namespace
Tests\Feature\Auth
;
use
App\Models\User
;
use
Illuminate\Auth\Notifications\ResetPassword
;
use
Illuminate\Foundation\Testing\RefreshDatabase
;
use
Illuminate\Support\Facades\Notification
;
use
Tests\TestCase
;
class
PasswordResetTest
extends
TestCase
{
use
RefreshDatabase
;
public
function
test_reset_password_link_screen_can_be_rendered
()
{
$response
=
$this
->
get
(
'/forgot-password'
);
$response
->
assertStatus
(
200
);
}
public
function
test_reset_password_link_can_be_requested
()
{
Notification
::
fake
();
$user
=
User
::
factory
()
->
create
();
$this
->
post
(
'/forgot-password'
,
[
'email'
=>
$user
->
email
]);
Notification
::
assertSentTo
(
$user
,
ResetPassword
::
class
);
}
public
function
test_reset_password_screen_can_be_rendered
()
{
Notification
::
fake
();
$user
=
User
::
factory
()
->
create
();
$this
->
post
(
'/forgot-password'
,
[
'email'
=>
$user
->
email
]);
Notification
::
assertSentTo
(
$user
,
ResetPassword
::
class
,
function
(
$notification
)
{
$response
=
$this
->
get
(
'/reset-password/'
.
$notification
->
token
);
$response
->
assertStatus
(
200
);
return
true
;
});
}
public
function
test_password_can_be_reset_with_valid_token
()
{
Notification
::
fake
();
$user
=
User
::
factory
()
->
create
();
$this
->
post
(
'/forgot-password'
,
[
'email'
=>
$user
->
email
]);
Notification
::
assertSentTo
(
$user
,
ResetPassword
::
class
,
function
(
$notification
)
use
(
$user
)
{
$response
=
$this
->
post
(
'/reset-password'
,
[
'token'
=>
$notification
->
token
,
'email'
=>
$user
->
email
,
'password'
=>
'password'
,
'password_confirmation'
=>
'password'
,
]);
$response
->
assertSessionHasNoErrors
();
return
true
;
});
}
}
tests/Feature/Auth/RegistrationTest.php
0 → 100644
View file @
775380b4
<?php
namespace
Tests\Feature\Auth
;
use
App\Providers\RouteServiceProvider
;
use
Illuminate\Foundation\Testing\RefreshDatabase
;
use
Tests\TestCase
;
class
RegistrationTest
extends
TestCase
{
use
RefreshDatabase
;
public
function
test_registration_screen_can_be_rendered
()
{
$response
=
$this
->
get
(
'/register'
);
$response
->
assertStatus
(
200
);
}
public
function
test_new_users_can_register
()
{
$response
=
$this
->
post
(
'/register'
,
[
'name'
=>
'Test User'
,
'email'
=>
'test@example.com'
,
'password'
=>
'password'
,
'password_confirmation'
=>
'password'
,
]);
$this
->
assertAuthenticated
();
$response
->
assertRedirect
(
RouteServiceProvider
::
HOME
);
}
}
Prev
1
2
3
4
Next
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment