| File: Commands\SettingsSchemaBuilderTests.cs | Web Access |
| Project: src\tests\Aspire.Cli.Tests\Aspire.Cli.Tests.csproj (Aspire.Cli.Tests) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. using Aspire.Cli.Commands; using Aspire.Cli.Documentation.ApiDocs; using Aspire.Cli.Documentation.Docs; namespace Aspire.Cli.Tests.Commands; public class SettingsSchemaBuilderTests { [Fact] public void BuildSchema_DoesNotIncludeDocsSourceProperties() { var schema = SettingsSchemaBuilder.BuildSchema(excludeLocalOnly: false); Assert.DoesNotContain(schema.Properties, static property => property.Name == "docs"); } [Fact] public void BuildConfigFileSchema_IncludesDocsSourcePropertiesWithDefaults() { var schema = SettingsSchemaBuilder.BuildConfigFileSchema(excludeLocalOnly: false); var docsProperty = Assert.Single(schema.Properties, static property => property.Name == "docs"); Assert.NotNull(docsProperty.SubProperties); Assert.Contains("override", docsProperty.Description, StringComparison.OrdinalIgnoreCase); var llmsProperty = Assert.Single(docsProperty.SubProperties, static property => property.Name == "llmsTxtUrl"); Assert.Equal("string", llmsProperty.Type); Assert.Contains(DocsSourceConfiguration.DefaultLlmsTxtUrl, llmsProperty.Description, StringComparison.Ordinal); Assert.Contains("override", llmsProperty.Description, StringComparison.OrdinalIgnoreCase); var apiProperty = Assert.Single(docsProperty.SubProperties, static property => property.Name == "api"); Assert.NotNull(apiProperty.SubProperties); Assert.Contains("override", apiProperty.Description, StringComparison.OrdinalIgnoreCase); var sitemapProperty = Assert.Single(apiProperty.SubProperties, static property => property.Name == "sitemapUrl"); Assert.Equal("string", sitemapProperty.Type); Assert.Contains(ApiDocsSourceConfiguration.DefaultSitemapUrl, sitemapProperty.Description, StringComparison.Ordinal); Assert.Contains("override", sitemapProperty.Description, StringComparison.OrdinalIgnoreCase); } [Fact] public void BuildSchema_DoesNotIncludeLegacyAppHostPath() { var schema = SettingsSchemaBuilder.BuildSchema(excludeLocalOnly: false); Assert.DoesNotContain(schema.Properties, static property => property.Name == "appHostPath"); } [Fact] public void BuildConfigFileSchema_KeepsLocalAppHostPath() { var schema = SettingsSchemaBuilder.BuildConfigFileSchema(excludeLocalOnly: false); var appHostProperty = Assert.Single(schema.Properties, static property => property.Name == "appHost"); Assert.NotNull(appHostProperty.SubProperties); Assert.Contains(appHostProperty.SubProperties, static property => property.Name == "path"); } }