create(); $user = User::factory()->create(); $user->tenants()->syncWithoutDetaching([ $tenant->getKey() => ['role' => 'owner'], ]); $this->actingAs($user) ->get(InventoryLanding::getUrl(tenant: $tenant)) ->assertOk() ->assertSee('Run Inventory Sync'); InventoryItem::factory()->create([ 'tenant_id' => $tenant->getKey(), 'display_name' => 'Item A', 'policy_type' => 'deviceConfiguration', 'external_id' => 'item-a', 'platform' => 'windows', ]); InventorySyncRun::factory()->create([ 'tenant_id' => $tenant->getKey(), 'selection_hash' => str_repeat('a', 64), 'status' => InventorySyncRun::STATUS_SUCCESS, ]); $landingUrl = InventoryLanding::getUrl(tenant: $tenant); $itemsUrl = InventoryItemResource::getUrl('index', tenant: $tenant); $syncRunsUrl = InventorySyncRunResource::getUrl('index', tenant: $tenant); $coverageUrl = InventoryCoverage::getUrl(tenant: $tenant); $kpiLabels = [ 'Total items', 'Coverage', 'Last inventory sync', 'Active ops', 'Inventory ops', ]; $this->actingAs($user) ->get($landingUrl) ->assertOk() ->assertSee($itemsUrl) ->assertSee($syncRunsUrl) ->assertSee($coverageUrl) ->assertSee($kpiLabels); $this->actingAs($user) ->get($itemsUrl) ->assertOk() ->assertSee($landingUrl) ->assertSee($syncRunsUrl) ->assertSee($coverageUrl) ->assertSee($kpiLabels) ->assertSee('Item A'); $this->actingAs($user) ->get($syncRunsUrl) ->assertOk() ->assertSee($landingUrl) ->assertSee($itemsUrl) ->assertSee($coverageUrl) ->assertSee($kpiLabels) ->assertSee(str_repeat('a', 12)); $this->actingAs($user) ->get(InventoryCoverage::getUrl(tenant: $tenant)) ->assertOk() ->assertSee($landingUrl) ->assertSee($itemsUrl) ->assertSee($syncRunsUrl) ->assertSee($kpiLabels) ->assertSee('Coverage') ->assertSee('Policies') ->assertSee('Foundations') ->assertSee('Dependencies') ->assertSee('✅'); });