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/blijegasten/blijegasten.be/app/Komma/Shop/Tests/Browser/ShippingCostsTest.php
<?php

namespace App\Komma\Shop\Tests\Browser;

use App\Komma\Globalization\RegionInfo;
use App\Komma\Shop\ShippingCosts\ShippingCosts;
use App\Komma\Shop\Tests\Browser\Pages\ShippingCostsTestPage;
use App\Komma\Shop\Tests\DuskTestCase;
use App\Komma\Users\Models\KmsUser;
use Laravel\Dusk\Browser;

class ShippingCostsTest extends DuskTestCase
{
    /**
     * @group ShippingCosts
     * @test
     * @throws \Throwable
     */
    public function testCreateAndDeleteShippingCosts()
    {
        $regionInfo = false;
        while($regionInfo == false) {
            /** @var RegionInfo $regionInfo */
            $candidateRegionInfo = RegionInfo::getNeutralCultures()->random(1)->first();
            if(ShippingCosts::where('code', '=', $candidateRegionInfo->getThreeLetterISORegionName())->count() == 0)
            {
                $regionInfo = $candidateRegionInfo;
                break;
            }
        }
        $this->assertInstanceOf(RegionInfo::class, $regionInfo);


        $amount = '6,99';
        $counter = 0;

        $this->browse(function (Browser $browser) use($regionInfo, $amount, $counter) {
            $browser->loginAs(KmsUser::find(1), 'kms')
                ->visit(new ShippingCostsTestPage())
                //Create
                ->click('@add_button')
                ->click('@Select-code')
                ->click('@Select-code-'.$regionInfo->getThreeLetterISORegionName())
                ->pause(100)
                ->value('@Currency-cost', '')
                ->type('@Currency-cost', $amount)
                ->pause(100)
                ->click('@entity_tab_algemeen') //To let the currency cost update.
                ->click('@save_button')
                ->assertSee(__('kms/global.saved'))
                ->assertValue('#Select-code', $regionInfo->getThreeLetterISORegionName())
                ->assertValue('@Currency-cost', str_replace(',', '.', $amount))
                //Find
                ->type('@entity_search_input', $regionInfo->getDisplayName())
                ->screenshot($this->getName(false).'-'.++$counter)
                ->assertSeeIn('@search-result-counter', '1')
                ->click('@found_search_item')
                ->screenshot($this->getName(false).'-'.++$counter)
                //Delete
                ->assertSeeIn('@entity_header', $regionInfo->getDisplayName())
                ->click('@delete_button')
                ->assertSee(__('kms/global.confirm_deletion'))
                ->click('@confirmation_confirm')
                ->assertSee(__('kms/global.removed'))
                ->screenshot($this->getName(false).'-'.++$counter);
        });
    }
}