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