Skip to content

[release/13.4] Assert allocated dashboard service URI has expected host and non-zero port#17741

Merged
davidfowl merged 1 commit into
release/13.4from
fix/testing-builder-dashboard-uri-assertions-13.4
May 31, 2026
Merged

[release/13.4] Assert allocated dashboard service URI has expected host and non-zero port#17741
davidfowl merged 1 commit into
release/13.4from
fix/testing-builder-dashboard-uri-assertions-13.4

Conversation

@JamesNK
Copy link
Copy Markdown
Member

@JamesNK JamesNK commented May 31, 2026

Summary

Cherry-pick of 20c2b87 to release/13.4.

Updates DashboardEnabledInTestingBuilderShouldWorkWithDynamicPorts and LoopbackWithDynamicPorts tests to assert the allocated dashboard service URI has the expected host and a non-zero port.

Fixes

Fixes tests failing from #17731

Copilot AI review requested due to automatic review settings May 31, 2026 01:16
@JamesNK JamesNK requested a review from sebastienros as a code owner May 31, 2026 01:16
@github-actions
Copy link
Copy Markdown
Contributor

🚀 Dogfood this PR with:

⚠️ WARNING: Do not do this without first carefully reviewing the code of this PR to satisfy yourself it is safe.

curl -fsSL https://raw.githubusercontent.com/microsoft/aspire/main/eng/scripts/get-aspire-cli-pr.sh | bash -s -- 17741

Or

  • Run remotely in PowerShell:
iex "& { $(irm https://raw.githubusercontent.com/microsoft/aspire/main/eng/scripts/get-aspire-cli-pr.ps1) } 17741"

@JamesNK JamesNK changed the title Assert allocated dashboard service URI has expected host and non-zero port [release/13.4] Assert allocated dashboard service URI has expected host and non-zero port May 31, 2026
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Cherry-pick to release/13.4 updating dashboard dynamic-port tests to assert that the allocated dashboard resource service endpoint resolves to the expected loopback host and a non-zero (allocated) port.

Changes:

  • Replace “wait for dashboard healthy” assertions with direct inspection of the allocated resource service URI via DashboardServiceHost.GetResourceServiceUriAsync().
  • Add host/port assertions for both default dynamic-port configuration and explicit loopback endpoint configurations.

[InlineData("https://[::1]:0")]
public async Task LoopbackWithDynamicPorts(string endpointUrl)
[InlineData("https://127.0.0.1:0", "127.0.0.1")]
[InlineData("https://[::1]:0", "[::1]")]
@github-actions
Copy link
Copy Markdown
Contributor

CLI E2E Tests unknown — 110 passed, 0 failed, 2 unknown (commit 6ef06d6)

View all recordings
Status Test Recording Job Artifacts
AddPackageInteractiveWhileAppHostRunningDetached Recording #78691033906 Logs
AddPackageWhileAppHostRunningDetached Recording #78691033906 Logs
AgentCommands_AllHelpOutputs_AreCorrect Recording #78691034002 Logs
AgentInitCommand_DefaultSelection_InstallsDefaultSkills Recording #78691034002 Logs
AgentInitCommand_MigratesDeprecatedConfig Recording #78691034002 Logs
AgentInitCommand_NonInteractive_BundleOnlySkillsBeyondCliCatalog_AreInstallable Recording #78691034002 Logs
AgentMcpListStructuredLogsReturnsLogsFromStarterApp Recording #78691033866 Logs
AgentMcpListStructuredLogsReturnsLogsFromStarterApp_DevLocalhost Recording #78691033866 Logs
AgentMcpListStructuredLogsReturnsLogsFromStarterApp_Isolated Recording #78691033866 Logs
AllPublishMethodsBuildDockerImages Recording #78691034037 Logs
AspireAddAndStartWorkAgainstLegacyAppHostTs Recording #78691033977 Logs
AspireAddPackageVersionToDirectoryPackagesProps Recording #78691033899 Logs
AspireInitSingleFileAppHostRunsViaDotnetRunAppHost Recording #78691033869 Logs
AspireInitWithExistingAppHostDirRecreatesMissingNuGetConfigAndPreservesFiles Recording #78691033952 Logs
AspireInitWithSolutionFileGeneratesAppHostThatBuildsAgainstChannelHive Recording #78691033952 Logs
AspireStartUpdatesStaleTypeScriptAppHostPath Recording #78691034070 Logs
AspireUpdateRemovesAppHostPackageVersionFromDirectoryPackagesProps Recording #78691033899 Logs
AspireUpdateRemovesOrphanAppHostPackageVersionWhenSdkAlreadyCurrent Recording #78691033899 Logs
Banner_DisplayedOnFirstRun Recording #78691033860 Logs
Banner_DisplayedWithExplicitFlag Recording #78691033860 Logs
Banner_NotDisplayedWithNoLogoFlag Recording #78691033860 Logs
CertificatesClean_RemovesCertificates Recording #78691033978 Logs
CertificatesTrust_WithNoCert_CreatesAndTrustsCertificate Recording #78691033978 Logs
CertificatesTrust_WithUntrustedCert_TrustsCertificate Recording #78691033978 Logs
ConfigSetGet_CreatesNestedJsonFormat Recording #78691033941 Logs
CreateAndRunAspireStarterProject Recording #78691033806 Logs
CreateAndRunAspireStarterProjectWithBundle Recording #78691033946 Logs
CreateAndRunEmptyAppHostProject Recording #78691033893 Logs
CreateAndRunJavaEmptyAppHostProject Recording #78691033909 Logs
CreateAndRunJsReactProject Recording #78691034055 Logs
CreateAndRunPolyglotAppHostWithDevLocalhostUrls Recording #78691033806 Logs
CreateAndRunPythonReactProject Recording #78691034010 Logs
CreateAndRunTypeScriptEmptyAppHostProject Recording #78691034072 Logs
CreateAndRunTypeScriptStarterProject Recording #78691034064 Logs
CreateJavaAppHostWithViteApp Recording #78691034053 Logs
CreateTypeScriptAppHostWithViteApp_AllowsGuestAppPackageManagerToDiffer Recording #78691034058 Logs
CreateTypeScriptAppHostWithViteApp_UsesConfiguredToolchain Recording #78691034058 Logs
DashboardRunWithAgentMcpListTracesReturnsNoTraces Recording #78691033904 Logs
DashboardRunWithAgentMcpListTracesReturnsNoTraces_DevLocalhost Recording #78691033904 Logs
DashboardRunWithOtelTracesReturnsNoTraces Recording #78691033904 Logs
DashboardRunWithOtelTracesReturnsNoTraces_DevLocalhost Recording #78691033904 Logs
DeployK8sBasicApiService Recording #78691033996 Logs
DeployK8sWithExternalHelmChart Recording #78691033910 Logs
DeployK8sWithGarnet Recording #78691034044 Logs
DeployK8sWithMongoDB Recording #78691033950 Logs
DeployK8sWithMySql Recording #78691033882 Logs
DeployK8sWithPostgres Recording #78691033901 Logs
DeployK8sWithRabbitMQ Recording #78691034029 Logs
DeployK8sWithRedis Recording #78691034013 Logs
DeployK8sWithSqlServer Recording #78691034011 Logs
DeployK8sWithValkey Recording #78691034004 Logs
DeployTypeScriptAppToKubernetes Recording #78691033943 Logs
DescribeCommandResolvesReplicaNames Recording #78691034069 Logs
DescribeCommandShowsRunningResources Recording #78691034069 Logs
DetachFormatJsonProducesValidJson Recording #78691033872 Logs
DetachFormatJsonProducesValidJsonWhenRestartingExistingInstance Recording #78691033872 Logs
DoPublishAndDeployListStepsWork Recording #78691034065 Logs
DocsCommand_RendersInteractiveMarkdownFromLocalSource Recording #78691033948 Logs
DoctorCommand_DetectsDeprecatedAgentConfig Recording #78691034002 Logs
DoctorCommand_TypeScriptAppHostReportsMissingConfiguredToolchain Recording #78691033999 Logs
DoctorCommand_WithSslCertDir_ShowsTrusted Recording #78691033999 Logs
DoctorCommand_WithoutSslCertDir_ShowsPartiallyTrusted Recording #78691033999 Logs
GatewayWithoutExternalEndpoint_FailsPublishWithGuidance Recording #78691033933 Logs
GeneratedAspireDevScript_StartsWatchMode_WithConfiguredToolchain Recording #78691034058 Logs
GlobalMigration_HandlesCommentsAndTrailingCommas Recording #78691033941 Logs
GlobalMigration_HandlesMalformedLegacyJson Recording #78691033941 Logs
GlobalMigration_PreservesAllValueTypes Recording #78691033941 Logs
GlobalMigration_SkipsWhenNewConfigExists Recording #78691033941 Logs
GlobalSettings_MigratedFromLegacyFormat Recording #78691033941 Logs
IngressWithoutExternalEndpoint_FailsPublishWithGuidance Recording #78691033933 Logs
InitTypeScriptAppHost_AugmentsExistingViteRepoInWorkspaceSubdirectory Recording #78691034058 Logs
InteractiveCSharpInitCreatesExpectedFiles Recording #78691033930 Logs
InvalidAppHostPathWithComments_IsHealedOnRun Recording #78691033992 Logs
JavaScriptHostingApisRunFromTypeScriptAppHost Recording #78691034037 Logs
LatestCliCanStartStableChannelAppHost Recording #78691033806 Logs
LatestCliCanStartStableChannelTypeScriptAppHost Recording #78691033806 Logs
LegacySettingsMigration_AdjustsRelativeAppHostPath Recording #78691034070 Logs
LogsCommandShowsResourceLogs Recording #78691033895 Logs
OtelLogsReturnsStructuredLogsFromStarterApp Recording #78691033853 Logs
OtelLogsReturnsStructuredLogsFromStarterAppIsolated Recording #78691033853 Logs
PsCommandListsRunningAppHost Recording #78691034038 Logs
PsFormatJsonOutputsOnlyJsonToStdout Recording #78691034038 Logs
PublishJavaScriptPatternsGeneratesExpectedDockerComposeArtifacts Recording #78691033985 Logs
PublishWithConfigureEnvFileUpdatesEnvOutput Recording #78691033985 Logs
PublishWithDockerComposeServiceCallbackSucceeds Recording #78691033985 Logs
PublishWithoutOutputPathUsesAppHostDirectoryDefault Recording #78691033985 Logs
ResourceCommand_FailedExecution_DisplaysAppHostLogPathAndLogContainsEntries Recording #78691033884 Logs
ResourceCommand_SetAndDeleteParameterUpdatesDescribeOutput Recording #78691033884 Logs
RestoreGeneratesSdkFiles Recording #78691034050 Logs
RestoreGeneratesSdkFiles_WithConfiguredToolchain Recording #78691033947 Logs
RestoreRefreshesGeneratedSdkAfterAddingIntegration Recording #78691033947 Logs
RestoreSupportsConfigOnlyHelperPackageAndCrossPackageTypes Recording #78691033861 Logs
RunFromParentDirectory_UsesExistingConfigNearAppHost Recording #78691034071 Logs
RunReportsSyntaxErrorsForDotNetAppHost Recording #78691034005 Logs
RunReportsSyntaxErrorsForTypeScriptAppHost Recording #78691034005 Logs
SecretCrudOnDotNetAppHost Recording #78691033935 Logs
SecretCrudOnTypeScriptAppHost Recording #78691033983 Logs
StagingChannel_ConfigureAndVerifySettings_ThenSwitchChannels Recording #78691033962 Logs
StartAndWaitForTypeScriptSqlServerAppHostWithNativeAssets Recording #78691033902 Logs
StartReportsSyntaxErrorsForDotNetAppHost Recording #78691034005 Logs
StartReportsSyntaxErrorsForTypeScriptAppHost Recording #78691034005 Logs
StopAllAppHostsFromAppHostDirectory Recording #78691033936 Logs
StopJavaPolyglotAppHostUsingApphostDirectory Recording #78691034008 Logs
StopNonInteractiveSingleAppHost Recording #78691033936 Logs
StopTypeScriptPolyglotAppHostUsingApphostDirectory Recording #78691034052 Logs
StopWithNoRunningAppHostExitsSuccessfully Recording #78691033906 Logs
TypeScriptAppHostRunDoesNotDeadlockWhenLazyOptionsInvokeAsyncCallback Recording #78691034072 Logs
UnAwaitedChainsCompileWithAutoResolvePromises Recording #78691033947 Logs
UpdateProjectChannelToStable_CSharpEmptyAppHost_PreservesAspireConfigChannel Recording #78691033878 Logs
UpdateProjectChannelToStable_CSharpSingleFileInit_PreservesAspireConfigChannel Recording #78691033878 Logs
UpdateProjectChannelToStable_TypeScriptSingleFileInit_PreservesAspireConfigChannel Recording #78691033878 Logs
UpdateProjectChannelToStable_TypeScript_PreviewsStablePackagesAndPreservesChannel Recording #78691033878 Logs

📹 Recordings uploaded automatically from CI run #26699770867

@davidfowl davidfowl merged commit f2e540e into release/13.4 May 31, 2026
313 checks passed
@davidfowl davidfowl deleted the fix/testing-builder-dashboard-uri-assertions-13.4 branch May 31, 2026 01:55
@microsoft-github-policy-service microsoft-github-policy-service Bot added this to the 13.4 milestone May 31, 2026
@aspire-repo-bot
Copy link
Copy Markdown
Contributor

✅ No documentation update needed.

docs_optional → test_only: No documentation PR is needed for this change.\n\n- No signals triggered (signal_count = 0).\n- The advisory only_test_or_build_changes flag is true.\n- This PR is a cherry-pick of a test fix that updates assertions in DashboardEnabledInTestingBuilderShouldWorkWithDynamicPorts and LoopbackWithDynamicPorts to verify the allocated dashboard service URI has the expected host and a non-zero port — a purely internal test correctness fix with no user-facing behavior change.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants