actingAs($user); $resolver = app(DependencyTargetResolver::class); /** @var InventoryItem $item */ $item = InventoryItem::factory()->create([ 'tenant_id' => $tenant->getKey(), 'external_id' => (string) Str::uuid(), ]); $scopeTag = InventoryItem::factory()->create([ 'tenant_id' => $tenant->getKey(), 'policy_type' => 'roleScopeTag', 'external_id' => '6', 'display_name' => 'Finance', ]); // Same external_id exists in another tenant; must never resolve across tenants. $otherTenant = \App\Models\Tenant::factory()->create(); InventoryItem::factory()->create([ 'tenant_id' => $otherTenant->getKey(), 'policy_type' => 'roleScopeTag', 'external_id' => '6', 'display_name' => 'Other Finance', ]); $edge = InventoryLink::factory()->create([ 'tenant_id' => $tenant->getKey(), 'source_type' => 'inventory_item', 'source_id' => $item->external_id, 'target_type' => 'foundation_object', 'target_id' => $scopeTag->external_id, 'relationship_type' => 'scoped_by', 'metadata' => [ 'last_known_name' => null, 'foundation_type' => 'scope_tag', ], ]); $resolved = $resolver->attachRenderedTargets(collect([$edge]), $tenant)->first(); expect($resolved) ->toBeArray() ->and($resolved['rendered_target']['resolved'])->toBeTrue() ->and($resolved['rendered_target']['badge_text'])->toBe('Scope Tag: Finance (6…)'); });