Private/CuiTests/Test-CuiAdm002.ps1
|
# Copyright (c) 2026 Jeffrey Snover. All rights reserved. # Licensed under the MIT License. See LICENSE file in the project root. function Test-CuiAdm002 { [CmdletBinding()] param( [Parameter(Mandatory)][string]$BaseUrl, [Parameter()][int]$TimeoutSec = 15, [Parameter()][hashtable]$AuthHeaders = @{} ) Set-StrictMode -Version Latest $Sw = [System.Diagnostics.Stopwatch]::StartNew() $Checks = [System.Collections.Generic.List[PSObject]]::new() # Check 1: GET /api/admin/telemetry/summary returns data $r = Invoke-RemoteCheck -BaseUrl $BaseUrl -Path '/api/admin/telemetry/summary' -TimeoutSec $TimeoutSec $TelemetryOk = $r.Success -and ($null -ne $r.Body) $Checks.Add((New-CuiCheckResult -Check 'Telemetry summary endpoint' -Pass $TelemetryOk ` -Detail $(if ($TelemetryOk) { 'Summary loaded' } else { "Failed: $($r.Error)" }) -Ms $r.ResponseMs)) # Check 2: GET /api/analytics/query returns analytics data $ar = Invoke-RemoteCheck -BaseUrl $BaseUrl -Path '/api/analytics/query' -TimeoutSec $TimeoutSec $AnalyticsOk = $ar.Success -and ($null -ne $ar.Body) $Checks.Add((New-CuiCheckResult -Check 'Analytics query endpoint' -Pass $AnalyticsOk ` -Detail $(if ($AnalyticsOk) { 'Analytics loaded' } else { "Failed: $($ar.Error)" }) -Ms $ar.ResponseMs)) # Check 3: GET /api/admin/review/stats returns review statistics $sr = Invoke-RemoteCheck -BaseUrl $BaseUrl -Path '/api/admin/review/stats' -TimeoutSec $TimeoutSec $StatsOk = $sr.Success -and ($null -ne $sr.Body) $Checks.Add((New-CuiCheckResult -Check 'Review stats endpoint' -Pass $StatsOk ` -Detail $(if ($StatsOk) { 'Stats loaded' } else { "Failed: $($sr.Error)" }) -Ms $sr.ResponseMs)) $Sw.Stop() New-CuiTestResult -CuiId 'CUI-ADM-002' -Domain 'Admin' -Priority 'P1' ` -DurationMs $Sw.ElapsedMilliseconds -Details $Checks.ToArray() } |