tenantUser(); $this->seedWarehouse(); $this->browse(function (Browser $browser) use ($user): void { $browser->loginAs($user) ->visit('/dashboard') ->waitFor('.wms-page-hero') ->assertSee('Main Warehouse') ->assertSee('Require batch number') ->visit('/warehouses') ->waitFor('.wms-page-hero'); $this->assertSingleProfessionalHeader($browser, 'Warehouses'); $browser->assertSee('Main Warehouse') ->visit('/warehouse-rules') ->waitFor('.wms-page-hero'); $this->assertSingleProfessionalHeader($browser, 'Validation Rules'); $browser->assertSee('Require batch number') ->assertSee('batch-required'); }); } public function test_warehouse_crud_forms_cover_create_and_validation_paths(): void { $user = $this->tenantUser(); $this->browse(function (Browser $browser) use ($user): void { $browser->loginAs($user) ->visit('/warehouses') ->waitFor('.wms-page-hero') ->press('Create') ->waitForText('The code field is required', 5) ->type('code', 'EAST') ->type('name', 'East Midlands DC') ->type('address', 'Main Road, Nottingham') ->press('Create') ->waitForText('Warehouse created.', 5) ->assertSee('East Midlands DC'); }); } public function test_validation_rule_form_covers_create_and_validation_paths(): void { $user = $this->tenantUser(); $this->seedWarehouse(); $this->browse(function (Browser $browser) use ($user): void { $browser->loginAs($user) ->visit('/warehouse-rules') ->waitFor('.wms-page-hero') ->type('name', '') ->type('rule_key', '') ->type('configuration', '{bad json') ->press('Add rule') ->waitForText('The name field is required', 5) ->type('name', 'Require serial number') ->type('rule_key', 'serial-required') ->select('severity', 'error') ->type('configuration', '{"field":"serial_no"}') ->press('Add rule') ->waitForText('Validation rule created.', 5) ->assertSee('Require serial number') ->assertSee('serial-required'); }); } }