HEX
Server: Microsoft-IIS/8.5
System: Windows NT YDAWBH120 6.3 build 9600 (Windows Server 2012 R2 Standard Edition) AMD64
User: tentjecom_web (0)
PHP: 7.4.14
Disabled: NONE
Upload Files
File: D:/HostingSpaces/SBogers10/firetech.komma.pro/tests/Browser/UserTest.php
<?php

namespace Tests\Browser;

use App\KommaApp\Shop\Tests\DuskTestCase;
use App\KommaApp\Users\Models\User;
use Illuminate\Foundation\Testing\DatabaseTransactions;
use Laravel\Dusk\Browser;
use Tests\Browser\Pages\UsersSectionTestPage;

class UserTest extends DuskTestCase
{
    use DatabaseTransactions; //Automatically rolls back database actions after tests

    /**
     * @group UserTest
     * @test
     */
    public function testCreateEmptyUser()
    {
        $this->browse(function (Browser $browser) {
            $browser->loginAs(User::find(1))
                ->visit(new UsersSectionTestPage())
                ->screenshot($this->getName())
                ->assertSee(__('kms/users.sub_title'))
                ->click('@addButton')
                ->screenshot($this->getName())
                ->click('@saveButton')
                ->assertSee('gebruikersnaam is verplicht.')
                ->screenshot($this->getName());
        });
    }

    /**
     * @group UserTest
     * @test
     */
    public function testCreateUserWithUsernameAndEmailOnly()
    {
        $this->browse(function (Browser $browser) {
            $browser->loginAs(User::find(1))
                ->visit(new UsersSectionTestPage())
                ->screenshot($this->getName())
                ->assertSee(__('kms/users.sub_title'))
                ->click('@addButton')
                ->screenshot($this->getName())
                ->type('@userNameField', 'DuskTestUser_'.str_random())
                ->type('@emailField', 'support_'.str_random().'@komma.pro')
                ->screenshot($this->getName())
                ->click('@saveButton')
                ->assertSee(__('kms/global.saved'))
                ->screenshot($this->getName());
        });
    }

    /**
     * @group UserTest
     * @test
     */
    public function testCreateUserWithUsernameEmailAndPasswordAndDeleteIt()
    {
        $randomUser = factory(User::class, 1)->make()->first();

        $this->browse(function (Browser $browser) use ($randomUser) {
            $browser->loginAs(User::find(1))
                ->visit(new UsersSectionTestPage())
                ->screenshot($this->getName())
                ->assertSee(__('kms/users.sub_title'))
                ->click('@addButton')
                ->screenshot($this->getName())
                ->type('@userNameField', $randomUser->username)
                ->type('@emailField', $randomUser->email)
                ->type('@passwordField', 'Admin123')
                ->type('@passwordConfirmationField', 'Admin123')
                ->screenshot($this->getName())
                ->pause(5000)
                ->click('@saveButton');


            //Delete user
            $counter = 0;
            $this->browse(function (Browser $browser) use ($randomUser, $counter) {
                $browser->visit(new UsersSectionTestPage())
                    ->type('@searchInput', $randomUser->username)
                    ->screenshot($this->getName(false).'-'.++$counter)
                    ->assertSeeIn('#search-result-counter', '1')
                    ->click('#users-searchlist > li.entities-list-item.active > a')
                    ->screenshot($this->getName(false).'-'.++$counter)
                    ->pause(2000)
                    ->assertInputValue('@userNameField', $randomUser->username)
                    ->click('@deleteButton')
                    ->assertSee(__('kms/global.confirm_deletion'))
                    ->click('@confirmYes')
                    ->assertSee(__('kms/global.removed'))
                    ->screenshot($this->getName(false).'-'.++$counter);
            });
        });
    }
}