active()->create([ 'workspace_id' => (int) $tenant->workspace_id, 'name' => 'Current Baseline', ]); $otherProfile = BaselineProfile::factory()->active()->create([ 'workspace_id' => (int) $tenant->workspace_id, 'name' => 'Device Hardening', ]); BaselineTenantAssignment::factory()->create([ 'workspace_id' => (int) $tenant->workspace_id, 'tenant_id' => (int) $tenant->getKey(), 'baseline_profile_id' => (int) $currentProfile->getKey(), ]); $assignedTenant = Tenant::factory()->create([ 'workspace_id' => (int) $tenant->workspace_id, 'name' => 'Already Assigned Tenant', ]); $availableTenant = Tenant::factory()->create([ 'workspace_id' => (int) $tenant->workspace_id, 'name' => 'Available Tenant', ]); BaselineTenantAssignment::factory()->create([ 'workspace_id' => (int) $tenant->workspace_id, 'tenant_id' => (int) $assignedTenant->getKey(), 'baseline_profile_id' => (int) $otherProfile->getKey(), ]); Livewire::actingAs($user) ->test(BaselineTenantAssignmentsRelationManager::class, [ 'ownerRecord' => $currentProfile, 'pageClass' => EditBaselineProfile::class, ]) ->mountTableAction('assign') ->assertFormFieldExists('tenant_id', function (Select $field) use ($assignedTenant, $availableTenant, $otherProfile): bool { $options = $field->getOptions(); $assignedTenantKey = (int) $assignedTenant->getKey(); $availableTenantKey = (int) $availableTenant->getKey(); $assignedLabel = $options[$assignedTenantKey] ?? $options[(string) $assignedTenantKey] ?? null; $availableLabel = $options[$availableTenantKey] ?? $options[(string) $availableTenantKey] ?? null; return $field->isSearchable() && $assignedLabel === 'Already Assigned Tenant (assigned to baseline: '.$otherProfile->name.')' && $field->isOptionDisabled($assignedTenantKey, $assignedLabel) && $availableLabel === 'Available Tenant' && ! $field->isOptionDisabled($availableTenantKey, $availableLabel); }); });