diff --git a/src/Razor/src/Microsoft.VisualStudio.LanguageServices.Razor/LanguageClient/Options/SettingsNames.cs b/src/Razor/src/Microsoft.VisualStudio.LanguageServices.Razor/LanguageClient/Options/SettingsNames.cs index 6200ae8f810..522b0b34d21 100644 --- a/src/Razor/src/Microsoft.VisualStudio.LanguageServices.Razor/LanguageClient/Options/SettingsNames.cs +++ b/src/Razor/src/Microsoft.VisualStudio.LanguageServices.Razor/LanguageClient/Options/SettingsNames.cs @@ -12,7 +12,7 @@ internal static class SettingsNames public static readonly string AutoInsertAttributeQuotes = UnifiedCollection + ".autoInsertAttributeQuotes"; public static readonly string ColorBackground = UnifiedCollection + ".colorBackground"; public static readonly string CodeBlockBraceOnNextLine = UnifiedCollection + ".codeBlockBraceOnNextLine"; - public static readonly string CommitElementsWithSpace = UnifiedCollection + ".commitCharactersWithSpace"; + public static readonly string CommitElementsWithSpace = UnifiedCollection + ".commitElementsWithSpace"; public static readonly string Snippets = UnifiedCollection + ".snippets"; public static readonly string LogLevel = UnifiedCollection + ".logLevel"; public static readonly string FormatOnPaste = UnifiedCollection + ".formatOnPaste"; diff --git a/src/Razor/test/Microsoft.VisualStudio.Razor.IntegrationTests/UnifiedSettingsTest.cs b/src/Razor/test/Microsoft.VisualStudio.Razor.IntegrationTests/UnifiedSettingsTest.cs index 1fe34ecb9d4..f6ae39b4685 100644 --- a/src/Razor/test/Microsoft.VisualStudio.Razor.IntegrationTests/UnifiedSettingsTest.cs +++ b/src/Razor/test/Microsoft.VisualStudio.Razor.IntegrationTests/UnifiedSettingsTest.cs @@ -4,6 +4,7 @@ using System.IO; using System.Reflection; using System.Text.Json; +using Microsoft.VisualStudio.Razor.LanguageClient.Options; using Xunit; namespace Microsoft.VisualStudio.Razor.IntegrationTests; @@ -12,10 +13,41 @@ public class UnifiedSettingsTest { [Fact] public void TestJsonIsValid() + { + var document = ReadRegistrationJson(); + Assert.NotNull(document); + } + + [Fact] + public void RegistrationListsAllSettingNames() + { + var document = ReadRegistrationJson(); + var properties = document.RootElement.GetProperty("properties"); + + foreach (var setting in SettingsNames.AllSettings) + { + Assert.True(properties.TryGetProperty(setting, out _), $"Could not find setting '{setting}' in razor.registration.json"); + } + } + + [Fact] + public void SettingNamesListsAllProperties() + { + var document = ReadRegistrationJson(); + var properties = document.RootElement.GetProperty("properties"); + + // iterate through properties and check that each one is in SettingsNames.AllSettings + foreach (var property in properties.EnumerateObject()) + { + var settingName = property.Name; + Assert.Contains(settingName, SettingsNames.AllSettings); + } + } + + private static JsonDocument ReadRegistrationJson() { var assembly = Assembly.GetExecutingAssembly(); var resourceName = "Microsoft.VisualStudio.Razor.IntegrationTests.razor.registration.json"; - using var stream = assembly.GetManifestResourceStream(resourceName); using var reader = new StreamReader(stream); var json = reader.ReadToEnd(); @@ -26,7 +58,6 @@ public void TestJsonIsValid() { CommentHandling = JsonCommentHandling.Skip }; - var document = JsonDocument.Parse(json, options); - Assert.NotNull(document); + return JsonDocument.Parse(json, options); } }