tenantUser(); $this->seedWarehouse($user->company); $this->browse(function (Browser $browser) use ($user): void { $browser->loginAs($user) ->visit('/dashboard'); $this->assertSingleProfessionalHeader($browser, 'Test Company'); $browser->assertSee('Main Warehouse') ->assertSee('Require batch number') ->visit('/warehouses'); $this->assertSingleProfessionalHeader($browser, 'Warehouses'); $browser->assertSee('Main Warehouse') ->visit('/warehouse-rules'); $this->assertSingleProfessionalHeader($browser, 'Validation Rules'); $browser->assertSee('Require batch number') ->assertSee('batch-required'); }); } public function test_warehouse_form_creates_warehouse(): void { $user = $this->tenantUser(); $this->browse(function (Browser $browser) use ($user): void { $browser->loginAs($user) ->visit('/warehouses'); $this->assertSingleProfessionalHeader($browser, 'Warehouses'); $browser->type('code', 'EAST') ->type('name', 'East Midlands DC') ->type('address', 'Main Road, Nottingham') ->press('Create') ->waitForText('East Midlands DC', 10) ->assertSee('East Midlands DC'); }); $this->assertDatabaseHas('warehouses', [ 'company_id' => $user->company_id, 'code' => 'EAST', 'name' => 'East Midlands DC', ]); } public function test_validation_rule_form_creates_rule(): void { $user = $this->tenantUser(); $warehouse = $this->seedWarehouse($user->company); $this->browse(function (Browser $browser) use ($user, $warehouse): void { $browser->loginAs($user) ->visit('/warehouse-rules'); $this->assertSingleProfessionalHeader($browser, 'Validation Rules'); $browser->select('warehouse_id', (string) $warehouse->id) ->type('name', 'Require serial number') ->type('rule_key', 'serial-required') ->select('severity', 'error') ->type('configuration', '{"field":"serial_no"}') ->press('Add rule') ->waitForText('Require serial number', 10) ->assertSee('serial-required'); }); $this->assertDatabaseHas('warehouse_validation_rules', [ 'warehouse_id' => $warehouse->id, 'name' => 'Require serial number', 'rule_key' => 'serial-required', ]); } }