72 lines
2.4 KiB
PHP
Executable File
72 lines
2.4 KiB
PHP
Executable File
<?php
|
|
|
|
namespace Tests\Browser;
|
|
|
|
use Laravel\Dusk\Browser;
|
|
use Modules\Platform\app\Models\PlatformPrice;
|
|
use Tests\Browser\Concerns\InteractsWithWmsBrowser;
|
|
use Tests\Browser\Concerns\InteractsWithWmsData;
|
|
use Tests\DuskTestCase;
|
|
|
|
class PlatformPricingBrowserTest extends DuskTestCase
|
|
{
|
|
use InteractsWithWmsBrowser;
|
|
use InteractsWithWmsData;
|
|
|
|
public function test_platform_pricing_page_shows_customer_card_grid_only_for_active_prices(): void
|
|
{
|
|
$admin = $this->platformAdminUser();
|
|
$this->seedPlatformPrices();
|
|
PlatformPrice::query()->updateOrCreate(
|
|
['code' => 'hidden'],
|
|
[
|
|
'name' => 'Hidden',
|
|
'monthly_amount' => 999,
|
|
'currency' => 'gbp',
|
|
'features' => [],
|
|
'sort_order' => 99,
|
|
'is_active' => false,
|
|
'is_featured' => false,
|
|
],
|
|
);
|
|
|
|
$this->browse(function (Browser $browser) use ($admin): void {
|
|
$browser->loginAs($admin)
|
|
->visit('/platform/pricing');
|
|
|
|
$this->assertSingleProfessionalHeader($browser, 'Pricing');
|
|
$browser->assertSee('Basic')
|
|
->assertSee('Advanced')
|
|
->assertSee('Pro')
|
|
->assertDontSee('Hidden');
|
|
});
|
|
}
|
|
|
|
public function test_admin_price_crud_pages_and_actions_are_browser_reachable(): void
|
|
{
|
|
$admin = $this->platformAdminUser();
|
|
$this->seedPlatformPrices();
|
|
$price = PlatformPrice::query()->where('code', 'basic')->firstOrFail();
|
|
|
|
$this->browse(function (Browser $browser) use ($admin, $price): void {
|
|
$browser->loginAs($admin)
|
|
->visit('/admin/prices');
|
|
|
|
$this->assertSingleProfessionalHeader($browser, '');
|
|
$browser->assertSee('Basic')
|
|
->assertSee('Advanced')
|
|
->assertSee('Pro')
|
|
->visit('/admin/prices/create');
|
|
|
|
$this->assertSingleProfessionalHeader($browser, '');
|
|
$browser->assertPresent('input[name="name"]')
|
|
->assertPresent('input[name="monthly_amount"]')
|
|
->visit('/admin/prices/' . $price->id . '/edit');
|
|
|
|
$this->assertSingleProfessionalHeaderExists($browser);
|
|
$browser->assertPresent('input[name="name"]')
|
|
->assertPresent('input[name="monthly_amount"]');
|
|
});
|
|
}
|
|
}
|