major update
This commit is contained in:
@@ -0,0 +1,87 @@
|
||||
<?php
|
||||
|
||||
namespace Tests\Browser;
|
||||
|
||||
use Laravel\Dusk\Browser;
|
||||
use Tests\Browser\Concerns\CreatesWmsBrowserData;
|
||||
use Tests\Browser\Concerns\TestsResponsiveBreakpoints;
|
||||
use Tests\DuskTestCase;
|
||||
|
||||
class WarehouseUiTest extends DuskTestCase
|
||||
{
|
||||
use CreatesWmsBrowserData;
|
||||
use TestsResponsiveBreakpoints;
|
||||
|
||||
public function test_dashboard_warehouse_and_rules_pages_render_at_all_breakpoints(): void
|
||||
{
|
||||
$user = $this->createLicensedUser(['name' => 'Tenant User']);
|
||||
$warehouse = $this->createWarehouseFor($user, ['name' => 'North Warehouse', 'code' => 'NORTH']);
|
||||
$this->createWarehouseRule($warehouse, ['name' => 'Batch number required']);
|
||||
|
||||
$pages = [
|
||||
['route' => 'dashboard', 'heading' => $user->company->name, 'expected' => ['Warehouses', 'Validation rules']],
|
||||
['route' => 'warehouses.index', 'heading' => 'Warehouses', 'expected' => ['North Warehouse', 'NORTH']],
|
||||
['route' => 'warehouse-rules.index', 'heading' => 'Warehouse validation rules', 'expected' => ['Batch number required', 'stock.location.required']],
|
||||
];
|
||||
|
||||
$this->browse(function (Browser $browser) use ($user, $pages): void {
|
||||
$browser->loginAs($user);
|
||||
|
||||
foreach ($pages as $page) {
|
||||
$browser->visitRoute($page['route']);
|
||||
|
||||
$this->eachBreakpoint($browser, function (Browser $browser, string $breakpoint) use ($page): void {
|
||||
$browser->assertSee($page['heading']);
|
||||
|
||||
foreach ($page['expected'] as $text) {
|
||||
$browser->assertSee($text);
|
||||
}
|
||||
|
||||
if ($this->isMobileNavigationBreakpoint($breakpoint)) {
|
||||
$browser->assertVisible('[data-wms-mobile-open]');
|
||||
} else {
|
||||
$browser->assertVisible('[data-wms-sidebar]');
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public function test_user_can_create_a_warehouse_from_the_ui(): void
|
||||
{
|
||||
$user = $this->createLicensedUser();
|
||||
|
||||
$this->browse(function (Browser $browser) use ($user): void {
|
||||
$browser
|
||||
->loginAs($user)
|
||||
->visitRoute('warehouses.index')
|
||||
->type('code', 'PICK')
|
||||
->type('name', 'Picking Warehouse')
|
||||
->select('status', 'active')
|
||||
->press('Create')
|
||||
->waitForText('Picking Warehouse')
|
||||
->assertSee('PICK')
|
||||
->assertSee('Picking Warehouse');
|
||||
});
|
||||
}
|
||||
|
||||
public function test_user_can_create_a_validation_rule_from_the_ui(): void
|
||||
{
|
||||
$user = $this->createLicensedUser();
|
||||
$warehouse = $this->createWarehouseFor($user, ['name' => 'Rules Warehouse', 'code' => 'RULES']);
|
||||
|
||||
$this->browse(function (Browser $browser) use ($user, $warehouse): void {
|
||||
$browser
|
||||
->loginAs($user)
|
||||
->visitRoute('warehouse-rules.index')
|
||||
->select('warehouse_id', (string) $warehouse->id)
|
||||
->type('name', 'Pallet scan required')
|
||||
->type('rule_key', 'pallet.scan.required')
|
||||
->select('severity', 'warning')
|
||||
->press('Add')
|
||||
->waitForText('Pallet scan required')
|
||||
->assertSee('pallet.scan.required')
|
||||
->assertSee('warning');
|
||||
});
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user