diff --git a/tests/Microsoft.Identity.Test.Integration.netcore/HeadlessTests/InstanceDiscoveryIntegrationTests.cs b/tests/Microsoft.Identity.Test.Integration.netcore/HeadlessTests/InstanceDiscoveryIntegrationTests.cs index c26790d5cf..447dc377cb 100644 --- a/tests/Microsoft.Identity.Test.Integration.netcore/HeadlessTests/InstanceDiscoveryIntegrationTests.cs +++ b/tests/Microsoft.Identity.Test.Integration.netcore/HeadlessTests/InstanceDiscoveryIntegrationTests.cs @@ -136,12 +136,26 @@ public async Task KnownInstanceMetadataIsUpToDateAsync() HttpMethod.Get, validDiscoveryUri)).ConfigureAwait(false); string discoveryJson = await discoveryResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + if (!discoveryResponse.IsSuccessStatusCode) + { + Assert.Fail( + $"Public discovery endpoint returned {(int)discoveryResponse.StatusCode} " + + $"{discoveryResponse.ReasonPhrase}. Body: {Truncate(discoveryJson)}"); + } HttpResponseMessage ppeDiscoveryResponse = await httpClient.SendAsync( new HttpRequestMessage( HttpMethod.Get, validPpeDiscoveryUri)).ConfigureAwait(false); string ppeDiscoveryJson = await ppeDiscoveryResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + if (!ppeDiscoveryResponse.IsSuccessStatusCode) + { + Assert.Inconclusive( + $"PPE discovery endpoint {validPpeDiscoveryUri} returned " + + $"{(int)ppeDiscoveryResponse.StatusCode} {ppeDiscoveryResponse.ReasonPhrase}. " + + $"This is typically an environmental issue (login.windows-ppe.net is restricted). " + + $"Body: {Truncate(ppeDiscoveryJson)}"); + } InstanceDiscoveryMetadataEntry[] actualMetadata = JsonHelper.DeserializeFromJson(discoveryJson).Metadata; InstanceDiscoveryMetadataEntry[] actualPpeMetadata = JsonHelper.DeserializeFromJson(ppeDiscoveryJson).Metadata; @@ -177,6 +191,16 @@ public async Task KnownInstanceMetadataIsUpToDateAsync() new InstanceDiscoveryMetadataEntryComparer()); } + private static string Truncate(string s, int maxLength = 500) + { + if (string.IsNullOrEmpty(s)) + { + return string.Empty; + } + + return s.Length <= maxLength ? s : s.Substring(0, maxLength); + } + private class InstanceDiscoveryMetadataEntryComparer : IEqualityComparer { public bool Equals(InstanceDiscoveryMetadataEntry x, InstanceDiscoveryMetadataEntry y)