dishplanner/tests/Browser/Auth/LoginTest.php

39 lines
1.2 KiB
PHP

<?php
use App\Models\Planner;
use Illuminate\Support\Facades\Hash;
it('logs in successfully', function () {
$planner = Planner::factory()->create([
'password' => Hash::make('password'),
]);
visit('/login')
->type('input[id="email"]', $planner->email)
->type('input[id="password"]', 'password')
->press('Sign In')
->assertPathIs('/dashboard');
});
it('rejects wrong credentials', function () {
$planner = Planner::factory()->create([
'password' => Hash::make('password'),
]);
visit('/login')
->type('input[id="email"]', $planner->email)
->type('input[id="password"]', 'wrong-password')
->press('Sign In')
->assertPathIs('/login')
->assertSee('These credentials do not match our records');
});
it('requires the email and password fields', function () {
visit('/login')
->assertScript("document.querySelector('input[id=\"email\"]').required")
->assertScript("document.querySelector('input[id=\"password\"]').required")
->assertAttribute('input[id="email"]', 'type', 'email')
->assertAttribute('input[id="password"]', 'type', 'password')
->press('Sign In')
->assertPathIs('/login');
});